作成しているバッチファイル内に単純なFORループがありますが、期待どおりに機能していません。FORループはテキストファイルの行を反復処理し、反復ごとにIFステートメントを使用して現在の行をすばやく比較し、trueと評価された場合にいくつかの作業を行います。コードは次のとおりです。
SETLOCAL ENABLEDELAYEDEXPANSION
set /a sitecounts=1
set /a input=34
FOR /F "tokens=1,2 delims=^/" %%G IN (file.txt) DO (
IF %sitecounts% == %input% (set /a selectedsitepath=%logfilepath%W3SVC%%H)
set /a sitecounts=!sitecounts!+1
echo !sitecounts!
)
私は奇妙な問題に遭遇しています。sitecounts変数(私のカウンター)は実際にはループごとに適切に増分します(最後のステートメントでカウントをエコーアウトすることでこれを証明します)-しかし、次の反復で%sitecounts%はまだそれを示しています初期値である「1」の値があります。
コードを次のように変更した場合:
IF !sitecounts! == ...
...次に、IFステートメントはその値を純粋なTEXTとして扱うように見えます!ループ内の変数を処理するようにENABLEDELAYEDEXPANSIONを設定しましたが、次に何をすべきかわかりません。どんな助けでも大歓迎です!