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

求PowerShell脚本:删除7天前目录,保留每月1日创建的目录

解决PowerShell删除旧目录时排除每月1日目录的问题

原脚本的问题在于错误使用字符串匹配判断目录创建日期,且仅比对当前月份的1号,未针对目录自身创建日期的日部分做判断,导致排除逻辑失效。

正确逻辑需同时满足两个条件:

  • 目录创建时间早于7天前
  • 目录创建时间的日部分不是1号

修正后的脚本:

Get-ChildItem C:\PSScripts\test -Recurse -Directory | 
Where-Object {
    $_.CreationTime -lt (Get-Date).AddDays(-7) -and 
    $_.CreationTime.Day -ne 1
} | Remove-Item -Force -Recurse

关键修正说明:

  • 直接调用$_.CreationTime.Day获取目录创建日期的日数值,用-ne 1判断是否非1号,这是DateTime对象的原生属性,比字符串匹配更准确可靠。
  • 原脚本的-notlike属于字符串匹配逻辑,生成的是当前月1号的格式化字符串,无法覆盖其他月份1号创建的目录,逻辑完全错误。

安全测试建议:

执行删除操作前,可先移除Remove-Item部分,用Select-Object查看待删除目录的信息,确认无误后再执行删除:

Get-ChildItem C:\PSScripts\test -Recurse -Directory | 
Where-Object {
    $_.CreationTime -lt (Get-Date).AddDays(-7) -and 
    $_.CreationTime.Day -ne 1
} | Select-Object Name, CreationTime

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:28:14