批处理文件查找特定子文件夹下的文件

批处理文件查找特定子文件夹下的文件

尊敬的批处理脚本专家,

我有以下文件(太多了):

F:\ABC\NAME1\2018\Q2\07 JUL\RANDOM NUMBER1\MSG.DAT
F:\ABC\NAME2\2018\Q3\07 JUL\RANDOM NUMBER2\MSG.DAT
F:\ABC\NAMEA\2018\Q3\08 AUG\RANDOM NUMBER3\MSG.DAT
F:\ABC\NAMEB\2018\Q3\09 SEP\RANDOM NUMBER4\MSG.DAT
F:\ABC\NAME3\2018\Q4\09 SEP\RANDOM NUMBER5\MSG.DAT

我正在尝试从批处理文件执行一个程序(program1.exe)并提供文件路径(所需的完整路径)作为命令行参数。

"C:\Program Files (x86)\Program1.exe" "the required full path"

例如,我正在努力寻找子文件夹 Q3 下的 MSG.DAT 文件的 URL。

非常感谢您的帮助。

答案1

在批量处理中,你必须将任务分成两部分,

  • 第一次找到文件夹 q3 for /r /d(需要伪通配符)
  • 第二次迭代它们并递归搜索 FILE MSG.DAT

@Echo off
For /r "F:\" /D %%A in (Q3?) Do For /F "delims=" %%B in (
   'Dir /B /S "%%A\MSG.DAT" 2^>NUL '
) Do Echo "C:\Program Files (x86)\Program1.exe" "%%~fB"
pause

如果输出看起来正常,请删除倒数第二行的回声。

相关内容