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

如何修改批处理脚本仅处理超过365天的旧文件?

修改批处理以仅压缩365天以上的旧文件

没问题,我把你的批处理脚本调整好了,现在它只会处理修改时间超过365天的文件,同时保留你原来的后缀排除规则:

@echo off
SetLocal EnableDelayedExpansion
set "Folder=C:\Test Folder"
set "exclude=.dll.exe.bat.zip.jpg.bmp.pdf.mp4.vbs"

:: 筛选365天前的文件,跳过排除后缀的文件
forfiles /p "%Folder%" /s /m *.* /d -365 /c "cmd /c if \"!exclude:@ext.=!\"==\"%exclude%\" (exit) else (echo @path)" | for /f "delims=" %%x in ('findstr /v /r "^ECHO"') do (
    "7za.exe" a -sdel -stl "%%~dx%%~px%%~nx.zip" "%%x"
)

核心改动解释:

  • 时间过滤:用forfiles的/d -365参数精准筛选出365天前修改的文件,比用dir结合时间字符串判断更可靠。
  • 后缀排除适配:在forfiles的命令参数里,通过@ext获取当前文件的后缀,对比排除列表——如果后缀在排除列表里就跳过,否则输出文件路径。
  • 清理输出:用findstr过滤掉forfiles偶尔会输出的ECHO提示,确保只有有效文件路径进入压缩流程。
  • 原有逻辑保留:7z压缩时删除原文件(-sdel)、保留文件时间戳(-stl)的功能完全保留,压缩包会生成在原文件同目录下。

注意:如果7za.exe不在系统默认的PATH路径中,记得把它的完整路径写进去,比如"C:\Program Files\7-Zip\7za.exe"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:29:11