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

我想要一个variables在每个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。