我有幾十萬個文件位於〜40個文件夾中(這些子文件夾位於同一個超文件夾中,我將稱之爲'測試')。我試圖使用PowerShell來替換文件夾名稱中找到的語法,但也使用文件名。Windows批處理文件和文件夾重命名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
感謝您的任何幫助。
最佳
假定文件夾重命名後,文件夾內的文件路徑是錯誤的,因爲該文件夾不再存在該名稱下。先嚐試重命名文件,方法是過濾'.. -Recurse | where-object {-not $ _。PsIsContainer} |重命名 - 項目..'然後重做它來重命名文件夾,也許? – TessellatingHeckler
謝謝,它像一個魅力工作! – Rhiz