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

PowerShell按创建时间删文件异常:更早月份文件未删除如何解决?

问题分析与解决

你的脚本有两个核心问题导致更早的文件/文件夹没被删除:

  1. Get-Childitem 默认只遍历目标目录的直接子项,不会深入子文件夹,所以子目录里的旧文件根本没被检测到。
  2. 删除文件夹时,Remove-Item 需要加 -Recurse 参数才能删除非空文件夹,否则会执行失败。
修正后的脚本
if (((Get-Volume -DriveLetter C).SizeRemaining / 17Gb) -lt 5) {
    # 删除Dumps文件夹(保留原有逻辑,确保删除非空目录)
    Remove-Item –path c:\testfolder\Dumps –Recurse -Force

    # 遍历testfolder下所有层级的文件和文件夹,删除创建时间早于2小时的项
    Get-ChildItem "c:\testfolder" -Recurse | Where-Object { $_.CreationTime -lt (Get-Date).AddHours(-2) } | Remove-Item -Recurse -Force
}
else {
    Write-Output "False"
}
关键修改说明
  • 给 Get-ChildItem 添加 -Recurse:让PowerShell遍历c:\testfolder下的所有层级,包括子文件夹里的内容,确保不会漏掉深层的旧文件。
  • 给 Remove-Item 添加 -Recurse -Force:既可以删除非空文件夹,又能跳过只读文件、隐藏文件的删除确认提示,避免脚本中断。
  • 时间判断逻辑保持不变:(Get-Date).AddHours(-2) 生成当前时间往前推2小时的时间戳,所有创建时间早于该时间的项(不管是去年还是上月的)都会被匹配并删除。
测试建议

先把脚本里的 Remove-Item 替换成 Select-Object FullName, CreationTime,运行后查看输出列表,确认哪些项会被删除,避免误删重要内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:45:29