我有一个批处理文件,其中包含嵌套循环continue
类似命令:
for %%i in (1, 2, 4, 8, 16, 32, 64, 128, 256) do (
for %%j in (1, 2, 4, 8, 16, 32, 64, 128, 256) do (
if %%i gtr %%j goto CONTINUE
test.exe 0 %%i %%j 100000 > "%%i_%%j".txt
:CONTINUE
rem
)
)
但当if
第一次陈述正确,不再重复。我只能获取文本文件1_256.txt
。所以看来goto CONTINUE
有问题。我的批处理文件有什么问题?
goto :Label
代码块内部()
like a for
循环会破坏块上下文,因此之后的所有内容:Label
被视为在块之外。所以你需要反转if
条件为不需要goto
as 这就是答案 https://stackoverflow.com/a/36356625演示,或者将代码片段与goto
and :Label
进入子程序并使用call
像这样:
for %%i in (1, 2, 4, 8, 16, 32, 64, 128, 256) do (
for %%j in (1, 2, 4, 8, 16, 32, 64, 128, 256) do (
call :SUB %%i %%j
)
)
exit /B
:SUB outer inner
if %1 gtr %2 goto CONTINUE
test.exe 0 %1 %2 100000 > "%1_%2.txt"
:CONTINUE
rem
exit /B
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)