как выполнить поиск сценариев powershell по каталогам вместе с корневым каталогом

#powershell

#powershell

Вопрос:

 cd ("F:OffcloudGossip GirlSeason 01")
Dir | Rename-Item -NewName { $_.Name -replace " ","" }
Dir | Rename-Item -NewName { $_.Name -replace "'","" }
Dir | Rename-Item -NewName { $_.Name -replace "a","" }
Dir | Rename-Item -NewName { $_.Name -replace "b","" }
Dir | Rename-Item -NewName { $_.Name -replace "c","" }
Dir | Rename-Item -NewName { $_.Name -replace "d","" }
Dir | Rename-Item -NewName { $_.Name -replace "e","" }
Dir | Rename-Item -NewName { $_.Name -replace "f","" }
Dir | Rename-Item -NewName { $_.Name -replace "g","" }
  

И т. Д. В принципе, я хочу удалить все, кроме небольшого списка (0123456789x). Могу ли я как-нибудь это сделать? Мой текущий сценарий занимает очень МНОГО времени. Кроме того, как я могу изменить свой сценарий, чтобы он также просматривал все дочерние каталоги?

Комментарии:

1. Объясните "remove everything except a small list" . Что вы хотите сделать? Или вы хотите такого же поведения, просто написанного более коротким способом?

Ответ №1:

Вы можете использовать этот -Recurse параметр для поиска по уровням каталогов.

 $SearchFolder = "F:OffcloudGossip GirlSeason 01"
Get-ChildItem -Path $SearchFolder -Recurse `
    | Rename-Item -NewName { 
        ($_.BaseName -replace " |'|a|b|c|d|e|f|g","")   $_.Extension 
    }
  

Затем, если вы используете оператор regex ‘s ИЛИ ( | ) в своей -replace строке, вы можете заменить все строки сразу. Замена выполняется на BaseName то, которое является именем файла без расширения. Затем мы просто добавляем расширение в конец.

Комментарии:

1. Спасибо.. еще одна проблема, могу ли я заставить его не удалять расширение файла? Скажем, последние 4 символа?

2. Спасибо. хотя пришлось разбить его на несколько сценариев, он проверяет только 10 или около того редакторов..

Ответ №2:

используйте эту команду :

 $path = "F:OffcloudGossip GirlSeason 01"

dir $path -Recurse -Include * |Rename-Item -NewName { $_.Name -replace " |'|a|b|c|d|e|f|g|h","" }