about_If

適用対象: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0

トピック

about_If

簡単な説明

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

詳細な説明

指定された条件付きテストが "true" と評価される場合にコード ブロックを実行するために、If ステートメントを使用できます。先行するすべてのテストが "false" と評価される場合は、1 つまたは複数の追加条件付きテストを指定して実行することもできます。最後に、先行する条件付きテストのいずれも "true" と評価されない場合に実行する追加のコードブロックを指定できます。

構文

次の例で、If ステートメントの構文を示します。

        if (<test1>) 
            {<statement list 1>}
        [elseif (<test2>)
            {<statement list 2>}]
        [else
            {<statement list 3>}]

If ステートメントを実行すると、Windows PowerShell® は <test1> 条件式を "true" または "false" と評価します。<test1> が "true" の場合、<statement list 1> が実行され、Windows PowerShell は If ステートメントを終了します。<test1> が "false" の場合、Windows PowerShell は <test2> の条件ステートメントで指定される条件を評価します。

<test2> が "true" の場合、<statement list 2> が実行され、Windows PowerShell は If ステートメントを終了します。<test1> と <test2> の両方が "false" と評価されると、<statement list 3> コード ブロックが実行され、Windows 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."
        }

関連項目

about_Comparison_Operators

about_Switch