次の方法で共有


について

概要

1つまたは複数の条件付きテストの結果に基づいてステートメントリストを実行するために使用できる言語コマンドについて説明します。

詳細説明

指定した条件テストが true と評価された場合に、If ステートメントを使用してコードブロックを実行できます。 前のテストがすべて 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 ステートメントを終了します。 との両方が false と評価された場合 <test1> <test2><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.")
}

この例をさらに絞り込むために、$a の値が2に等しい場合に、Elseif ステートメントを使用してメッセージを表示することができます。 次の例に示すように、次のようになります。

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.")
}

関連項目

about_Comparison_Operators

about_Switch