我有一个文件夹,其中包含几千个名为 XXX_CON.100.1.pdf、XXX_CON.101.1.pdf 等的 PDF。我只想从所有文件名中删除字符“XXX_”,但我根本无法让它工作。我尝试了以下命令:
获取子项 | 重命名项目 -NewName {$ .Name -replace "XXX ", "" }
Get-ChildItem -Filter 'XXX_*' | 重命名项目 -NewName {$ .name -replace 'XXX ','' }
获取子项 *.pdf | 重命名项目-NewName {$ .name.substring(4,$ .BaseName.length-4) + $_.Extension}
获取子项.pdf | 重命名项目 -NewName { $_.Name -replace 'XXX_ .pdf','*.pdf' }
ls | 其中 {$ .FullName -match '(XXX )'} | 重命名项目 -NewName { $_ -replace ("XXX_","") }
每个命令都给我 Powershell 错误“重命名项目:参数不正确”。
例如:
Rename-Item :参数不正确。在 line:1 char:23 + Get-ChildItem *.pdf | Rename-Item -NewName {$ .name.substring(4,$ .BaseName.leng ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : WriteError: (E:\TempPE\pdf\XXX_CON.99.1.pdf: String) [Rename-Item], IOException + FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand
疯狂的是,如果我在最后使用 -Whatif 运行它们,它们似乎都可以工作......但是当我取消该参数时,它们都会再次失败。
有人知道这里有什么问题吗?TBH 我用谷歌搜索了上面的例子,但我确信它们应该可以工作,但没有一个可以工作,而且我没有足够的 Powershell 专家知道如何让它工作。无论我尝试什么,它似乎都不喜欢 Rename-Item ,这真的很奇怪。可能是因为所有文件都不止点吗?