У меня есть архиватор, который содержит несколько тысяч PDF-файлов с именами XXX_CON.100.1.pdf, XXX_CON.101.1.pdf et c. Я просто хочу удалить символы «XXX_» из всех имен файлов, но я просто не могу заставить это работать. Я пробовал следующие команды:
Get-ChildItem | Rename-Item -NewName {$ .Name -replace "XXX ", ""}
Get-ChildItem -Filter 'XXX_ *' | Rename-Item -NewName {$ .name -replace 'XXX ', ''}
Get-ChildItem * .pdf | Rename-Item -NewName {$ .name.substring (4, $ .BaseName.length-4) + $ _. Extension}
Get-ChildItem .pdf | Rename-Item -NewName {$ _. Name -replace 'XXX_ .pdf', '*. Pdf'}
ls | Где {$ .FullName -match '(XXX )'} | Rename-Item -NewName {$ _ -replace ("XXX_", "")}
Каждая отдельная команда выдает мне ошибку Powershell "Rename-Item: параметр неверен."
например:
Rename-Item: неверный параметр. В строке: 1 символ: 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 Я искал в Google, чтобы получить примеры выше, но я уверен, что они должны работать, но ни один из них есть, и я недостаточно гуру Powershell, чтобы знать, как заставить это работать. Кажется, он просто не любит Rename-Item, что бы я ни пробовал, что действительно странно. Может быть, потому что все файлы в них больше точки?