批处理脚本中的嵌套IF语句中的GEQ

时间:2012-11-05 07:53:15

标签: windows

我希望变量在每个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进行处理(与第一个代码中的相同)。

0 个答案:

没有答案