我有数十万个文件位于约 40 个文件夹中(这些子文件夹位于同一个超级文件夹中,我将称之为“测试”)。我尝试使用 powershell 替换文件夹名称以及文件名中的语法。
基本上我的文件夹和文件包含相同的字符串“PXXXX_0”,我想在“PXXXX_”中批量重命名
这是我用来首先映射感兴趣的文件和文件夹的代码
cd C:\test
Get-ChildItem -Filter "*PXXXX_0*" -Recurse | Rename-Item -NewName {$_.name -replace 'PXXXX_0', 'PXXXX_'} -whatif
这给了我正确的文件和预览的动作(例如
What if: Performing operation "Rename File" on Target "Item: C:\test\PXXXX_053\PXXXX_053_558.jpg Destination C:\test\PXXXX_053\PXXXX_53_558.jpg
所以这似乎有效,但仅限于我也想重命名的文件夹内的文件。
现在,如果我在没有 -whatif 的情况下启动代码,似乎只有文件夹名称被重命名,而不是文件......
我很确定我错过了一些东西,但由于我对这种语言并不熟悉,我正在努力寻找解决方案。我正在使用 Powershell v1.0
谢谢你的帮助。
最好的