特定のIFステートメントが有効な場合、FOR / Fループの行の読み取りをスキップすることは可能ですか?例えば:
FOR /F "tokens=* delims=" %%j in (exclusions.txt) do (
IF %SomethingIDeclaredBefore%==%%j (jump to the next line of the text file) else (echo not equal)
インクリメントするのは不可能だと思います%%j.
特定のIFステートメントが有効な場合、FOR / Fループの行の読み取りをスキップすることは可能ですか?例えば:
FOR /F "tokens=* delims=" %%j in (exclusions.txt) do (
IF %SomethingIDeclaredBefore%==%%j (jump to the next line of the text file) else (echo not equal)
インクリメントするのは不可能だと思います%%j.
どうですか
for /l %%C in (1,1,254) do (
findstr /b /e "172.24.104.%%C" exclusions.txt >nul
if errorlevel 1 (echo shutdown) else (echo skip)
)
あなたは正しい方向に進んでいます。チェックするifステートメントを実行するだけですif not %SomethingIDeclaredBefore%==%%j
。このように、ステートメントに一致しない行のみがループで処理され、基本的にその行はスキップされます。
FOR /F "tokens=* delims=" %%j in (exclusions.txt) do (
IF NOT %SomethingIDeclaredBefore%==%%j (echo not equal)
)
私があなたのコメントからあなたのシナリオを理解するならば、これはあなたが望むことをするはずです。各アドレスの除外を確認するには、完全な除外ループがアドレスループ内にある必要があります。
SETLOCAL EnableExtensions EnableDelayedExpansion
FOR /L %%C IN (1,1,254) DO (
SET "Found=false"
FOR /F "tokens=* delims=" %%J IN (exclusions.txt) DO (
IF "172.24.104.%%C"=="%%J" SET "Found=true"
)
IF "!Found!"=="true" ( ECHO Skip ) ELSE ( ECHO Shutdown )
)
ENDLOCAL