Удалить символ из имен файлов в каждой папке в определенной папке

Используя сценарий, мне удалось непреднамеренно переименовать все в домашней папке пользователя на сервере, чтобы каждый файл в каждой папке (и папки внутри папок) был переименован, чтобы в конце иметь "$". Все, что я пытался сделать, это переименовать домашнюю папку каждого пользователя в foldername$, чтобы скрывать его при поиске общих папок.

Короче говоря, я выяснил, как избавиться от "$" из каждого файла в одной папке, но он не применяется ко всем дочерним папкам:

get-childitem * | foreach { rename-item $_ $_.Name.Replace("$","") }

Кто-нибудь знает, как изменить это, чтобы удалить символы $ в конце каждого файла в каждой папке в папке?

Спасибо!

1 ответ

Пытаться:

Get-ChildItem -Filter "*$" -Recurse | Rename-Item -NewName {$_.Name.Replace("$","") }
  • -Filter гораздо быстрее, чем где /foreach.
  • -Recurse перебирает подпапки
  • Rename-Item принимает ввод по каналу.
Другие вопросы по тегам