2010-06-21 49 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

相关问题