Проблема здесь в том, что если в имени файла нет пробела, имя не изменится.Это не поддерживается Rename-Item
.Вместо этого вы должны использовать Move-Item
:
Get-ChildItem -recurse -name | ForEach-Object { Move-Item $_ $_.replace(" ", "_") }
Кроме того, в своем ответе вы пропустили подчеркивание в $_.replace(...)
и добавили пробелы вместо пустой строки.Включил это в мой ответ.