我无法找到我的问题,但似乎这是一个常见的问题。
我试图遍历目录中的所有批处理文件,无论其深度如何。
这就是我所拥有的:
for /f "tokens=* delims=" %%a in ('dir %DIR% /s /b *.bat') do (
if not exist %%a\* echo %%a
)
预先设定DIR的地方。我只回显文件。
显然这是错误的,因为它首先输出所有文件,然后输出所有批处理文件。
似乎我需要以某种方式合并* .bat说明符和%DIR%变量,但我不确定如何执行此操作。
答案 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 ( ...