gpt4 book ai didi

windows - "continue"Windows Batch 中嵌套循环中的等效命令

转载 作者:可可西里 更新时间:2023-11-01 13:28:44 32 4
gpt4 key购买 nike

我有一个批处理文件,其中包含带有 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在代码块内 ()for循环打破 block 上下文,所以所有在:Label之后被视为在 block 之外。所以你需要反转 if不需要的条件goto作为ths's answer演示,或者您将代码片段与 goto 放在一起和 :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

关于windows - "continue"Windows Batch 中嵌套循环中的等效命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36355490/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com