2

我想要一个变量在每个 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(与第一个代码中的完全相同)。

4

0 回答 0