我是 PowerShell 的新手,最近我尝试重命名文件夹中的 120 个文件,但遇到了奇怪的行为。
我所拥有的是从 0001.txt、0002.txt、... 0120.txt 命名的文件,总共 120 个文件。我想在每个文件名前添加一个“a”。我想出了这个命令:
ls | ren -newname {$_.name -replace '(\d+)','a$1'}
Run Code Online (Sandbox Code Playgroud)
但是执行后,我收到了很多这样的错误:
“指定的路径、文件名或两者都太长。完全限定的文件名必须小于 260”
当我查看我的文件夹时,我得到的只是文件名
aaaaaaaaaaaaaaaaaaaaaaaaa(repeat until it hit system limit on path length)....a0001.txt
...
...
...
aaaaaaaaaaaaaaaaaaaaaaaaa(repeat until it hit system limit on path length)....a0120.txt
Run Code Online (Sandbox Code Playgroud)
使用 -cf 开关进一步检查后,事实证明 PowerShell 会递归地尝试重命名过程。在第一遍重命名所有 120 个文件后,它再次将命令应用于 a0001.txt,有效地在文件名前面添加了另一个“a”。这一直持续到它达到路径长度限制并报告错误。
谁能告诉我我的重命名命令是否有问题?