我对Powershell完全陌生,想编写一个脚本删除目录中的所有非mp3文件。Powershell - 删除所有非mp3文件
我的解决办法:
get-childitem -Recurse |
Where-Object {!($_.PSIsContainer)} |
Where {$_.Extension -ne ".mp3"} |
remove-item
什么可以在这个声明得到改善,或者可以以另一种方式来写。 这个陈述有什么问题吗?
谢谢。
我对Powershell完全陌生,想编写一个脚本删除目录中的所有非mp3文件。Powershell - 删除所有非mp3文件
我的解决办法:
get-childitem -Recurse |
Where-Object {!($_.PSIsContainer)} |
Where {$_.Extension -ne ".mp3"} |
remove-item
什么可以在这个声明得到改善,或者可以以另一种方式来写。 这个陈述有什么问题吗?
谢谢。
我将只使用一个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
删除的文件。
什么 - whatIf? – kamahl 2010-06-24 13:04:31
描述如果执行该命令而不实际执行该命令会发生什么情况。 – 2010-06-24 20:19:03
我会与xcud的答案一起去,但请记住,您可以将测试组合成一个Where-Object命令,例如'在哪里{!$ _。PSIsContainer-和($ _。Extension -ne'.mp3')}' – 2010-06-21 19:39:12