我的任务是替换大约 10000 个文件(包括子文件夹)中的文件名中的某些字符。
所以在我的例子中我想将字符 # 更改为哈希。
我的文件位置是“C:\Users\JHB Laptop\Documents”,主文件名为测试“C:\Users\JHB Laptop\Documents\test”。
子文件夹为“C:\Users\JHB Laptop\Documents\test\New folder1\New folder2\New folder3\New folder4\New folder5”
我改编了用户 331812 Malcolm 的这段代码
{cd "C:\Users\MyName\Documents\MyDirectory"
# by default, -replace is case-insensitive (equivalent to -ireplace)
# for case-sensitive, use -creplace
Dir | Rename-Item –NewName { $_.name –replace "_"," " }}
以下是我的修正:
cd "C:\Users\JHB Laptop\Documents\test"
# by default, -replace is case-insensitive (equivalent to -ireplace)
# for case-sensitive, use -creplace
Dir | Rename-Item –NewName { $_.name –replace "#","(hash)" }
这部分工作正常,但当然会停止在字符串中的最后一个文件夹
这就是我的知识范围。我看到 -recurse 在子文件夹中发挥作用,但我无法弄清楚它在项目中的位置。