各 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が印刷されるのですか?インデックスが 6 以上の場合は常に 1 にリセットしているため、6 は出力されません。
私の目的は、1 から 5 までの INDEX を取得し、各 GOTO ステートメントで 1 ずつ増加させることです (最初のコードとまったく同じです)。