![删除 Windows 服务器下除最新 5 个文件之外的所有 *.zip 文件](https://linux22.com/image/747001/%E5%88%A0%E9%99%A4%20Windows%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8B%E9%99%A4%E6%9C%80%E6%96%B0%205%20%E4%B8%AA%E6%96%87%E4%BB%B6%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%20*.zip%20%E6%96%87%E4%BB%B6.png)
我有文件名称为
abc_1.zip
abc_2.zip
abc_3.zip
abc_4.zip
abc_5.zip(below_latest)
abc_6.zip(latest)
在 Windows Server 2012 R2 下。现在我需要一个命令来删除除最新文件和低于最新文件之外的所有文件。
注意:以上名称仅供参考。因此我可以说我想保留最近的文件(最新和低于最新)并删除所有文件。
另外,我需要单行命令,而不是 PowerShell 脚本。
提前致谢。
答案1
单行 PowerShell:
Get-ChildItem -file | Sort-Object LastWriteTime -Descending | Select-Object -Skip 2 | Remove-Item
或者使用一些别名:
ls -file | sort LastWriteTime -d | Select -Skip 2 | rm
如果您不在包含要删除的文件的目录中,请使用:
Get-ChildItem -Path C:\test ...