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

3079
Rich Lewis

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

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

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

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

Спасибо!

3
* Я пытался переименовать домашнюю папку каждого пользователя в foldername $, чтобы быть скрытым * ... Google ** Перечисление на основе доступа ** и использовать его вместо этого! Twisty Impersonator 7 лет назад 0

1 ответ на вопрос

2
LotPings

Пытаться:

Get-ChildItem -Filter "*$" -Recurse | Rename-Item -NewName {$_.Name.Replace("$","") } 
  • -Filter намного быстрее, чем где / foreach.
  • -Recurse перебирает подпапки
  • Rename-Item принимает ввод по каналу.
Ваш [ответ] (http://superuser.com/help/how-to-answer) может получить дополнительную информацию. Пожалуйста, отредактируйте его, чтобы объяснить, что делает эта команда / как она работает. Twisty Impersonator 7 лет назад 0