2010-06-21 108 views
2

我對Powershell完全陌生,想編寫一個腳本刪除目錄中的所有非mp3文件。Powershell - 刪除所有非mp3文件

我的解決辦法:

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

什麼可以在這個聲明得到改善,或者可以以另一種方式來寫。 這個陳述有什麼問題嗎?

謝謝。

+1

我會與xcud的答案一起去,但請記住,您可以將測試組合成一個Where-Object命令,例如'在哪裏{!$ _。PSIsContainer-和($ _。Extension -ne'.mp3')}' – 2010-06-21 19:39:12

回答

5

我將只使用一個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刪除的文件。

+0

什麼 - whatIf? – kamahl 2010-06-24 13:04:31

+0

描述如果執行該命令而不實際執行該命令會發生什麼情況。 – 2010-06-24 20:19:03