我似乎无法找到,如何在内部循环中使用外部循环的迭代器(在批处理文件中):
setlocal enabledelayedexpansion
REM for every folder in %mainfolder%
for /D %%s in (%mainfolder%\*) DO (
REM for every file in the subfolder %s
for %%f in (%%s\*) do(
some things with the files in that subfolder
)
)
我必须在哪里放置感叹号,以便我可以在内循环中实际使用%s?现在,我得到了错误
" do(" kann syntaktisch nicht an dieser stelle verarbeitet werden C:\ fakepath> for%f in(%s *)do(
这意味着翻译为" do("无法在此位置进行语法处理。
我很确定问题实际上与延迟扩展有关(实际上,没有使用它)
答案 0 :(得分:1)
要纠正错误,必须在do
子句和代码块的左括号之间添加一个空格。
%%s
可替换参数范围/可见性是for
循环内的任何位置,用于初始化它。因此,它可以直接在内循环中使用。