我在文件夹/它们的子文件夹中有多个.txt文件。
我想在其文件名后附加_old。
我尝试过:
Get-ChildItem -Recurse | Rename-Item -NewName {$_.name -replace '.txt','_old.txt' }
这导致:
.._old_old.txt
Rename-Item : Source and destination path must be different.
为了防止已经重命名的文件意外地reentering枚举并因此被重命名了[[multiple次,请将Get-ChildItem
调用包含在()
中,即grouping operator,以确保收集了所有输出first,然后通过管道发送结果:
(Get-ChildItem -Recurse) | Rename-Item -NewName {$_.name -replace '\.txt$','_old.txt' }
但是,我建议按以下方式优化您的命令:
Get-ChildItem -Recurse -File *.txt | Rename-Item -NewName { $_.BaseName + '_old' + $_.Extension }