Powershell - Удалить все файлы, кроме mp3 - PullRequest
2 голосов
/ 21 июня 2010

Я совершенно новичок в Powershell и хотел написать скрипт, который удаляет все не-mp3 файлы в каталоге.

Мое решение:

get-childitem -Recurse | 
Where-Object {!($_.PSIsContainer)} | 
Where {$_.Extension -ne ".mp3"} | 
remove-item

Что можно улучшить вэто утверждение или может быть написано по-другому.Есть ли проблемы с этим утверждением?

Спасибо.

1 Ответ

5 голосов
/ 22 июня 2010

Я бы использовал только одну команду Where-Object:

Get-childitem -Recurse | 
    Where-Object {!$_.PSIsContainer -AND $_.Extension -ne '.mp3'} | 
    Remove-Item -whatIf  

Если вы уверены, что ни один каталог не имеет расширения 'mp3':

Get-childitem -Recurse | Where-Object {$_.Extension -ne '.mp3'} | 
    Remove-Item -whatIf 

Удалите -whatIf вудалить файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...