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

如何修改PowerShell脚本不使用Temp变量保留最新5个文件夹并删除其余

PowerShell 脚本修改方案(无需临时目录保留最新5个文件夹)

核心思路

原脚本通过临时目录中转的逻辑完全冗余,我们可以直接反向筛选需要删除的对象:先捞出目标路径下所有文件夹,按创建时间倒序排序后跳过要保留的前5个,剩下的直接删除即可,不需要临时目录做中转。

修改后完整脚本

# 定义目标路径
$path = "D:\AccountServiceQAT"
# 自定义保留的最新文件夹数量
$keepCount = 5

# 可选:删除目标路径根目录下所有单独的文件(非文件夹内的内容),如果根目录无单独文件可删除本段
Get-ChildItem -Path $path -File | Remove-Item -Force

# 筛选并删除超出保留数量的旧文件夹
Get-ChildItem -Path $path -Directory | 
    Sort-Object -Property CreationTime -Descending | 
    Select-Object -Skip $keepCount | 
    Remove-Item -Recurse -Force

说明

  • 代码中使用-Directory参数替代了原脚本中的Where {$_.PSIsContainer},是PowerShell 3.0及以上版本原生支持的语法,写法更简洁,兼容性足够。
  • 原脚本中定义的$limit变量全程未被使用,新脚本直接移除即可。
  • 如果需要按修改时间排序而非创建时间,把CreationTime替换为LastWriteTime即可。
  • 新增的-Force参数用于避免遇到只读属性的文件/文件夹删除失败的问题,不需要可自行移除。
  • 调整保留的文件夹数量只需修改$keepCount的数值即可,无需改动其他逻辑。

内容的提问来源于stack exchange,提问作者Surya8985

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:39:00