Используйте -Recurse
для включения подпапок.Используйте BaseName
, которое является именем файла без расширения.
Прочтите документацию для получения дополнительной информации о
Get-ChildItem *.mkv -Recurse | Rename-Item -NewName {"$($_.BaseName).vlc"}
Редактировать
Извините, я пропустил эту часть:
изменить все типы расширений файлов на одно расширение
Чтобы изменить все расширения файлов, вам просто нужно исключить *mkv
, но какпокрывается ответом LotPings это не рекомендуется;очень легко изменить расширение файлов, которые вы не хотели.Он рассматривает использование параметра -Include
, который является рекомендуемым способом, так как он фильтрует на ранних этапах.
Чтобы показать другой способ, вы можете использовать свойство Extension
.Это позволяет использовать все операторы сравнения PowerShell - примеры ниже.
Get-ChildItem -Recurse | Where-Object {$_.Extension -eq ".mkv"}
Get-ChildItem -Recurse | Where-Object {$_.Extension -in @(".mkv",".avi")}
Get-ChildItem -Recurse | Where-Object {$_.Extension -ne ".vlc"}