我想使用Powershell v2.0将“.backup”附加到所有文件和文件夹名称(包括子文件夹中的子文件夹和文件)。将“.backup”附加到Powershell 2.0中的所有文件,文件夹和子文件夹
我想出了这个脚本:
$origin = get-childItem -recurse | ?{ !($_.name -like "*.backup") }
$folders = $origin | ?{ $_.PSIsContainer }
$files = $origin | ?{ ! $_.PSIsContainer }
$files | rename-item -force -newname { $_.name + '.backup' }
$folders | rename-item -force -newname { $_.name + '.backup' }
,但我得到这个错误了许多项目,说明路径是错误的:
Rename-Item : Cannot rename because item at 'Microsoft.PowerShell.Core\FileSystem::E:\backup\test.backup\subfolder.backup\proc 1\backup\example.docx' does not exist.
At line:1 char:21
+ $files | rename-item <<<< -force -newname { $_.name + '.backup' }
+ CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
但这样的文件(example.docx)存在于尽管如此。
为什么会抛出该错误?在PS 2.0中将'.backup'附加到文件和文件夹的正确代码是什么?感谢您的任何想法!
编辑:我不认为我的问题是When renaming a file with PowerShell, how do I handle filenames with "["?的重复,原因有二:1-目标不同(只看标题); 2,即使这是一个很好的起点(这就是为什么我在我的答案中已经链接到它),线程并没有提供我想要的代码。我的问题可能是无关紧要的,但是我花了几个小时才弄明白,所以也许我可以让一些人感到沮丧。但是我的问题很糟糕,现在我会重新做。
可能的重复[当使用PowerShell重命名文件时,如何处理文件名为“\ [”?](http://stackoverflow.com/questions/14259317/when-renaming-a-file-with-powershell - 如何-DO-I-手柄文件名,有) –