Batch-script-if-statement
バッチスクリプト-Ifステートメント
最初の意思決定ステートメントは「if」ステートメントです。 バッチスクリプトでこのステートメントの一般的な形式は次のとおりです-
if(condition) do_something
このステートメントの一般的な機能は、最初に「if」ステートメントで条件が評価されることです。 条件が真の場合、ステートメントを実行します。 次の図は、 if ステートメントのフローを示しています。
変数の確認
バッチスクリプトの「if」ステートメントの一般的な用途の1つは、バッチスクリプト自体に設定されている変数をチェックすることです。 「if」ステートメントの評価は、文字列と数字の両方に対して実行できます。
整数変数の確認
次の例は、数値に「if」ステートメントを使用する方法を示しています。
例
@echo off
SET/A a = 5
SET/A b = 10
SET/A c = %a% + %b%
if %c%==15 echo "The value of variable c is 15"
if %c%==10 echo "The value of variable c is 10"
上記のプログラムについて注意すべき重要なことは-
- 最初の「if」ステートメントは、変数cの値が15かどうかを確認します。 その場合、コマンドプロンプトに文字列がエコーされます。
- ステートメントの条件-if%c%== 10 echo "変数 c の値が10の場合、falseと評価されるため、ステートメントのエコー部分は実行されません。
出力
上記のコマンドは、次の出力を生成します。
15
文字列変数の確認
次の例は、文字列に「if」ステートメントを使用する方法を示しています。
例
@echo off
SET str1 = String1
SET str2 = String2
if %str1%==String1 echo "The value of variable String1"
if %str2%==String3 echo "The value of variable c is String3"
上記のプログラムについて注意すべき重要なことは-
- 最初の「if」ステートメントは、変数str1の値に文字列「String1」が含まれているかどうかを確認します。 その場合、コマンドプロンプトに文字列がエコーされます。
- 2番目の「if」ステートメントの条件がfalseと評価されるため、ステートメントのエコー部分は実行されません。
出力
上記のコマンドは、次の出力を生成します。
"The value of variable String1"
注-重要なことの1つは、「if」ステートメントの評価が「大文字と小文字を区別する」ことです。 上記と同じプログラムを次の例に示すように少し変更します。 最初のステートメントでは、比較基準を変更しました。 大文字と小文字が異なるため、次のプログラムの出力は何も生成しません。
@echo off
SET str1 = String1
SET str2 = String2
if %str1%==StrinG1 echo "The value of variable String1"
if %str2%==String3 echo "The value of variable c is String3"
コマンドライン引数の確認
「if」ステートメントのもう1つの一般的な使用法は、バッチファイルに渡されるコマンドライン引数の値を確認するために使用されます。 次の例は、「if」ステートメントを使用してコマンドライン引数の値を確認する方法を示しています。
例
@echo off
echo %1
echo %2
echo %3
if %1%==1 echo "The value is 1"
if %2%==2 echo "The value is 2"
if %3%==3 echo "The value is 3"
上記のプログラムについて注意すべき重要なことは-
- 上記のプログラムは、バッチスクリプトの実行時に3つのコマンドライン引数が渡されることを前提としています。
- 各コマンドライン引数と値が比較されます。 基準に合格すると、文字列が出力として送信されます。
出力
上記のコードがtest.batというファイルに保存され、プログラムが次のように実行される場合
test.bat 1 2 3
以下は上記のプログラムの出力です。
1
2
3
"The value is 1"
"The value is 2"
"The value is 3"