forループ内のif then文

forループ内のif then文

私は Windows スクリプトの初心者です。私のスクリプトは、ファイル内の文字列を検索し、文字列をカウントし、if then else ステートメントで戻りコードをチェックします。しかし、疑問があります。if then ステートメントで、今回は [%i] が予期しないエラーとして表示されます。

@echo off
cd C:\script\
for /f "tokens=3" %%i in ( 'find /C "ANR2034E" checkout.txt' ) do ( echo %%i )
if [/I] [%%i] == [1]  ( echo %%i ) else ( echo No ) )

さらに、if ステートメントを for ループに統合できますか?

例:

for %%i in ('command') do ( if [/I] [%%i] == [i] (command) else (command))

答え1

@echo off
cd C:\script\
for /f "tokens=3" %%i in ('find /C "ANR2034E" checkout.txt') do (
    echo %%i
    if [%%i]==[1] (
        echo %%i
    ) else (
        echo No
    )
)

エラーは、角括弧/iの後にがあったために発生しましたif。いずれにしても、整数のみを返す を/i使用したため、大文字と小文字の区別は必要ありません。find /c

ご覧のとおり、if条件はループ内に確実に含めることができますfor

関連情報