概要
1 つ以上の条件付きテストの結果に基づいてステートメント リストを実行するために使用できる言語コマンドについて説明します。
詳細説明
If ステートメントを使用すると、指定した条件付きテストが true と評価された場合にコード ブロックを実行できます。 以前のすべてのテストが false と評価された場合に実行する 1 つ以上の追加の条件付きテストを指定することもできます。 最後に、他の事前の条件付きテストが true と評価されない場合に実行される追加のコード ブロックを指定できます。
構文
次の例は、If ステートメントの構文を示しています。
if (<test1>)
{<statement list 1>}
[elseif (<test2>)
{<statement list 2>}]
[else
{<statement list 3>}]
If ステートメントを実行すると、PowerShell は <test1> 条件式を true または false として評価します。
<test1> が true の場合、<statement list 1> が実行され、PowerShell は If ステートメントを終了します。
<test1> が false の場合、PowerShell は、<test2> 条件ステートメントで指定された条件を評価します。
<test2> が true の場合、<statement list 2> が実行され、PowerShell は If ステートメントを終了します。
<test1> と <test2> の両方が false と評価された場合、<statement list 3> コード ブロックが実行され、PowerShell は If ステートメントを終了します。
複数の Elseif ステートメントを使用して、一連の条件テストをチェーンできます。 したがって、各テストは、前のすべてのテストが false の場合にのみ実行されます。 多くの Elseif ステートメントを含む If ステートメントを作成する必要がある場合は、代わりに Switch ステートメントの使用を検討してください。
例:
最も単純な If ステートメントには 1 つのコマンドが含まれ、Elseif ステートメントや Else ステートメントは含まれません。 次の例は、If ステートメントの最も単純な形式を示しています。
if ($a -gt 2) {
Write-Host "The value $a is greater than 2."
}
この例では、$a変数が 2 より大きい場合、条件は true と評価され、ステートメント リストが実行されます。 ただし、$a が 2 以下の場合、または既存の変数でない場合、If ステートメントはメッセージを表示しません。
Else ステートメントを追加すると、$aが 2 以下の場合にメッセージが表示されます。 次の例に示すように、次のようになります。
if ($a -gt 2) {
Write-Host "The value $a is greater than 2."
}
else {
Write-Host ("The value $a is less than or equal to 2," +
" is not created or is not initialized.")
}
この例をさらに絞り込むために、Elseif ステートメントを使用して、$a の値が 2 に等しい場合にメッセージを表示できます。 次の例に示すように、次のようになります。
if ($a -gt 2) {
Write-Host "The value $a is greater than 2."
}
elseif ($a -eq 2) {
Write-Host "The value $a is equal to 2."
}
else {
Write-Host ("The value $a is less than 2 or" +
" was not created or initialized.")
}