You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何删除目录内除最近10个文件外的所有旧文件

PowerShell中如何删除目录内除最近10个文件外的所有旧文件

嘿,这个需求我之前也碰到过,其实调整一下你现有的命令逻辑就能轻松搞定,核心就是精准筛选出要删除的旧文件——也就是把最新的10个文件排除在外~

核心实现思路

我们的目标是保留最新的10个文件,所以可以按这个逻辑来操作:

  1. 先把目录里的文件按最后修改时间从新到旧排序(这样最新的文件会排在最前面)
  2. 跳过前10个文件(也就是我们要保留的那些)
  3. 把剩下的所有旧文件传递给删除命令处理

直接可用的命令

这条命令就能完美实现你的需求:

Get-ChildItem -Path C:\Temp -File | 
    Sort-Object -Property LastWriteTime -Descending | 
    Select-Object -Skip 10 | 
    Remove-Item -Verbose

逐段解释命令逻辑

  • Get-ChildItem -Path C:\Temp -File:获取目标目录下的所有文件(自动排除文件夹,避免误删目录)
  • Sort-Object -Property LastWriteTime -Descending:按文件最后修改时间降序排序,最新的文件会排在结果的第一位
  • Select-Object -Skip 10:跳过排序后的前10个文件(也就是我们要保留的最新文件),剩下的就是需要删除的旧文件
  • Remove-Item -Verbose:执行删除操作,-Verbose参数会在控制台输出具体删除的文件名,方便你确认操作的准确性

重要安全提示

删除文件属于高危操作,建议你先执行下面的测试命令,确认哪些文件会被删除,避免误删重要内容:

Get-ChildItem -Path C:\Temp -File | 
    Sort-Object -Property LastWriteTime -Descending | 
    Select-Object -Skip 10

运行这条命令后,你会看到即将被删除的文件列表,确认没问题后,再替换成带Remove-Item -Verbose的完整命令即可。

另外,如果你的场景里按文件创建时间判断新旧更准确,只需要把命令里的LastWriteTime换成CreationTime就行,完全可以根据实际需求调整。

备注:内容来源于stack exchange,提问作者JamesThomasMoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:54:39