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

如何指定搜索目录,按日期范围搜索小于X KB的文件及批处理问题

问题原因

你的代码存在两处核心错误:

  1. 语法错误:引号未闭合
    你插入的大小筛选代码Forfiles /S /M * /C "cmd /c if @fsize LSS 120000 echo @file末尾缺少闭合/C参数的双引号,直接导致批处理语法解析失败无法运行。
  2. 逻辑错误:过滤条件不匹配
    原有两层forfiles嵌套的作用是筛选出日期在2021年3月1日到2021年8月24日之间的文件,结果存在变量%%B中。但你替换后新增的forfiles命令直接遍历所有文件,完全没有用到前面的日期过滤结果,即使修复语法,输出结果也不符合预期。

修复方案

不需要额外嵌套第三层forfiles,直接在第二层日期过滤的forfiles命令中加入大小判断即可,修复后的完整代码如下,你可以直接修改开头的变量调整参数:

@echo off
setlocal
:: 按需修改以下三个参数即可
set "END_DATE=24-08-2021"
set "START_DATE=01-03-2021"
set "MAX_SIZE=120000"

FOR /F "delims=" %%A IN ('forfiles /d -%END_DATE% 2^>nul') DO (
    forfiles /m "%%~A" /d +%START_DATE% /c "cmd /c if @fsize LSS %MAX_SIZE% echo @path" 2>nul
)

可选调整说明

  • 如果只需要输出文件名不需要完整路径,将代码中的@path替换为@file即可
  • 如果需要递归搜索当前目录下所有子目录的文件,在第一个forfiles后添加/S参数即可
  • 注意forfiles的日期格式需要和你系统的区域设置保持一致,若出现无结果的情况可检查系统日期格式是否为日-月-年

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:51:01