Powershell - 删除所有非mp3文件

kam*_*ahl 2 powershell

我是Powershell的新手,想写一个删除目录中所有非mp3文件的脚本.

我的解决方案

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

可以在本声明中改进或以其他方式编写.这个陈述有什么问题吗?

谢谢.

Sha*_*evy 5

我只使用一个Where-Object命令:

Get-childitem -Recurse | 
    Where-Object {!$_.PSIsContainer -AND $_.Extension -ne '.mp3'} | 
    Remove-Item -whatIf  
Run Code Online (Sandbox Code Playgroud)

如果你确定没有目录有'mp3'扩展名:

Get-childitem -Recurse | Where-Object {$_.Extension -ne '.mp3'} | 
    Remove-Item -whatIf 
Run Code Online (Sandbox Code Playgroud)

删除-whatIf以删除文件.