代码之家  ›  专栏  ›  技术社区  ›  kamahl

PowerShell-删除所有非MP3文件

  •  2
  • kamahl  · 技术社区  · 15 年前

    我对PowerShell完全陌生,想写一个删除目录中所有非MP3文件的脚本。

    我的解决方案:

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

    在这个陈述中可以改进什么,或者可以用另一种方式来写。 这句话有什么问题吗?

    谢谢您。

    1 回复  |  直到 15 年前
        1
  •  5
  •   Keith Hill    15 年前

    我只要一个 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 删除文件。

    推荐文章