如何使用 PowerShell 递归替换文件中的字符串以及文件和文件夹名称?
使用 PowerShell(尽管欢迎其他建议),如何递归循环目录/文件夹并
- 在所有文件中将文本 A 替换为 B,
- 重命名所有文件以便 A 被 B 替换,最后
- 重命名所有文件夹以便 A 为换成B?
With PowerShell (although other suggestions are welcome), how does one recursively loop a directory/folder and
- replace text A with B in all files,
- rename all files so that A is replaced by B, and last
- rename all folders also so that A is replaced by B?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
经过一些需求改进,我最终得到了这个脚本:
With a few requirements refinements, I ended up with this script:
我会采用这样的方法:
Sort-Object
的作用是确保列出第一个子目录(子目录、文件),然后列出它们后面的目录。 (12345)I would go with something like this:
The
Sort-Object
is there to ensure that first children (subdirs, files) are listed and then directories after them. (12345)未经测试,但应该给你一个起点:
Untested, but should give you a starting point:
未经测试,可能我更幸运;-)
使用相同的递归:
Untested, may be I'm more lucky ;-)
To use the same recursion:
我自己需要这个,下面是稍微好一点的脚本版本。
我添加了以下内容:
请注意,答案的一个变化是上面的文件夹仅在指定文件夹中递归,而不是在根目录中。如果您不想这样,只需设置
$recurse = true
即可。I needed this for myself and below slightly better version of the script.
I added followings:
Note that one change from the answer is that above recurses folder only in specified folders, not in root. If you don't want that then just set
$recurse = true
.