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

请求PowerShell/CMD脚本:删除嵌套文件夹中30天以上PNG文件(通配符问题)

解决ForFiles文件夹通配符失效问题

问题原因

ForFiles的/p参数仅支持单个具体路径,不支持通配符(比如Process*),所以你之前的命令无法识别目标文件夹。


方案1:PowerShell原生脚本(推荐)

直接用PowerShell的文件处理命令,更灵活且符合你的脚本需求:

# 先预览要删除的文件(安全测试,确认无误后去掉-WhatIf)
Get-ChildItem -Path "C:\Runs\Process*" -Recurse -Filter "*.png" -File | 
    Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | 
    Remove-Item -WhatIf

# 确认后执行删除(去掉-WhatIf)
Get-ChildItem -Path "C:\Runs\Process*" -Recurse -Filter "*.png" -File | 
    Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | 
    Remove-Item
  • 说明:
    • Get-ChildItem -Path "C:\Runs\Process*":枚举所有以Process-开头的子文件夹
    • -Recurse:遍历嵌套子目录(比如AppFiles)
    • -Filter "*.png":只筛选PNG文件
    • Where-Object:过滤出最后修改时间超过30天的文件
    • -WhatIf:测试模式,仅输出要删除的文件路径,不会实际删除

方案2:CMD命令(兼容原有ForFiles逻辑)

用for /d循环枚举符合条件的文件夹,再逐个调用ForFiles:

for /d %%G in ("C:\Runs\Process*") do (
    ForFiles /p "%%G" /s /d -30 /m "*.png" /c "cmd /c del @path"
)
  • 说明:
    • for /d %%G in ("C:\Runs\Process*"):遍历C:\Runs下所有以Process-开头的目录
    • 对每个目录%%G,执行ForFiles命令删除30天以上的PNG文件
    • /c "cmd /c del @path":添加实际删除动作(原命令仅列出文件,需加此参数才会删除)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 20:20:50