我想要一个变量在每个 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 5 1 2 3 4 5 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 5 6 2 3 4 5 6 2 3
为什么要打印 6?由于我将索引重置为 1,只要它大于或等于 6。它不应该打印 6。
我的目标是让 INDEX 从 1 到 5,在每个 GOTO 语句中增加 1(与第一个代码中的完全相同)。