我希望变量在每个GOTO语句中指定1到5的值。下面是我的示例代码,它运行正常 -
@ECHO OFF
SET a=10
SET b=15
SET /A INDEX=1
:START
IF [%INDEX%] GEQ [6] (
SET /A INDEX=1
)
ECHO %INDEX%
SET /A INDEX+=1
GOTO START
输出 - 1 2 3 4 五 1 2 3 4 五 1
但是,在生成嵌套的IF语句后,它无法按预期工作。以下是示例代码 -
@ECHO OFF
SET a=10
SET b=15
SET /A INDEX=1
:START
REM a and b are calculated dynamically, here for making the code easy, I am just assigning static values to them.
IF [%a%] LSS [%b%] (
IF [%INDEX%] GEQ [6] (
SET /A INDEX=1
)
ECHO %INDEX%
SET /A INDEX+=1
)
GOTO START
输出 - 1 2 3 4 五 6 2 3 4 五 6 2 3
为什么要打印6?因为我将Index重置为1,只要它大于或等于6.它不应该打印6。
我的目标是让INDEX从1到5,在每个GOTO声明中按1进行处理(与第一个代码中的相同)。