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が印刷されるのですか?インデックスが 6 以上の場合は常に 1 にリセットしているため、6 は出力されません。

私の目的は、1 から 5 までの INDEX を取得し、各 GOTO ステートメントで 1 ずつ増加させることです (最初のコードとまったく同じです)。

4

0 に答える 0