サーチ…


構文

  • if [/ i] StringToCompare1 == StringToCompare2(commandA)else(commandB)

  • エラーレベル1(commandA)else(commandB)

  • if%errorlevel%== 1(commandA)else(commandB)

  • ifファイル名(commandA)else(commandB)

  • 定義されている場合はVariableName(commandA)else(commandB)

備考

if文ではいくつかの構文を選択できます。 if string1==string2を例として使用します。

1行の構文

  • if string1==string2 commandA
  • if string1==string2 (commandA)
  • if string1==string2 (commandA) else (commandB)
  • if string1==string2 (commandA) else commandB
  • if string1==string2 (commandA)else (commandB)
  • if string1==string2 (commandA)else commandB

複数行の構文

if string1==string2 (
    commandA
)

または

if string1==string2 (
    commandA
) else (
    commandB
)

まだまだ余分な構文があります。

数値とIFステートメントの比較

SET TEST=0

IF %TEST% == 0 (
    echo TEST FAILED
) ELSE IF %TEST% == 1 (
    echo TEST PASSED
) ELSE (
    echo TEST INVALID
)

文字列の比較

IF "%~1" == "-help" (
    ECHO "Hello"
)

ここで%1は最初のコマンドライン引数を参照し、 ~はスクリプトの呼び出し時に含まれていた引用符をすべて削除します。

Errorlevelの比較

If Errorlevel 1 (
    Echo Errorlevel is 1 or higher
    
    REM The phrase "1 or higher" is used because If Errorlevel 1 statement means:
    REM                                          If %Errorlevel% GEQ 1
    REM                                      Not If %Errorlevel% EQU 1
)

または

If "%Errorlevel%"=="1" (
    Echo Errorlevel is 1
)

上記のスクリプトは変数Errorlevel(組み込み)をチェックします。 not演算子を使用できます。

Set "Test=%Errorlevel%"

If "%Test%" == "1" (
    Echo Errorlevel is 1
)

これも動作します。

一部のコマンドはエラーレベルに影響しないことに注意してください。

  • ブレーク
  • エコー
  • エンドローカル
  • にとって
  • もし
  • 一時停止
  • レム
  • Rd / Rmdir
  • セット
  • タイトル

次のコマンドはerrorlevelを設定しますが、クリアしません

  • Cls
  • 後藤
  • キー
  • ポップ
  • シフト

次のコマンドは終了コードを設定しますが、エラーレベルは設定しません

  • Rd / Rmdir

次のコマンドはerrorlevelを設定しますが、終了コードは設定しません

  • Md / Mkdir

ファイルが存在するかどうかを確認する

If exist "C:\Foo\Bar.baz" (
    Echo File exist
)

これは、ファイルC:\ Foo \ Bar.bazが存在するかどうかをチェックします。これが存在する場合は、ファイルが存在する場合Not演算子を追加することもできます。

変数が存在する/設定されている場合

If Defined Foo (
    Echo Foo is defined
)

これは、変数が定義されているかどうかをチェックします。ここでも、 Not演算子を使用できます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow