如何以递归方式遍历特定文件类型的目录?

时间:2014-10-08 18:41:04

标签: batch-file for-loop file-type

我无法找到我的问题,但似乎这是一个常见的问题。

我试图遍历目录中的所有批处理文件,无论其深度如何。

这就是我所拥有的:

for /f "tokens=* delims=" %%a in ('dir %DIR% /s /b *.bat') do (
    if not exist %%a\* echo %%a
)

预先设定DIR的地方。我只回显文件。

显然这是错误的,因为它首先输出所有文件,然后输出所有批处理文件。

似乎我需要以某种方式合并* .bat说明符和%DIR%变量,但我不确定如何执行此操作。

2 个答案:

答案 0 :(得分:1)

你的问题对我来说有点模糊,但我认为这就是你想要的:

@echo off
setlocal

set DIR=h:\scripts

for /f "usebackq delims=;" %%q in (`dir %DIR%\*.bat /s/b/a-d`) do (
    echo %%q
)

endlocal

这会将所有.bat文件放入%%q

答案 1 :(得分:1)

for /r %DIR% %%a in (*.bat) do ( ...