PowerShell Rename-Item зацикливается, пока размер файла не достигнет предела - PullRequest
0 голосов
/ 19 декабря 2018

Я должен переименовать буквально тысячи папок и хочу использовать скрипт, который добавляет «Старый» перед старым именем.

Я пробовал этот скрипт

Get-ChildItem | rename-item -NewName { "Old+ $_.Name }

Это дажеработает, когда я пробую его в нескольких маленьких тестовых папках, чтобы не испортить мою основную папку, но, к сожалению, он работает там, но не в моей главной папке.В моей главной папке эта команда будет зацикливаться до тех пор, пока не достигнет предела количества символов и не остановится.

Выглядит так:

Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Zimmer.

В сети я тоже нашел эту, но она выдает тот же результат

get-childitem | % { rename-item $_ "Old $_"}

Это ошибка или я просто тупой?

1 Ответ

0 голосов
/ 19 декабря 2018

Чтобы переименовать папки по заданному пути, добавив к ним префикс «Старый», это работает для меня:

$path = "<PATH TO YOUR MAIN FOLDER>"
Get-ChildItem -Path $path -Directory | Rename-Item -NewName { "Old$($_.Name)" }

# For PowerShell version less than 3.0
# Get-ChildItem -Path $path | Where-Object { $_.PSIsContainer} | Rename-Item -NewName { "Old$($_.Name)" }

(без установки параметра -Path командлет Get-ChildItem использует значение по умолчаниюместоположение, которое является текущим каталогом . или $pwd)

...