batch-file
If文
サーチ…
構文
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