about_If

適用於: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

主題

about_If

簡短描述

描述可用來執行以一或多個條件式測試結果為基礎之陳述式清單的語言命令。

詳細描述

若指定的條件式測試評估為 true 時,您可以使用 If 陳述式來執行程式碼區塊。若之前的所有測試都評估為 false 時,您也可以指定執行一或多個額外的條件式測試。最後,若其他之前的條件式測試均未評估為 true 時,您可以指定執行一個額外的程式碼區塊。

語法

下列範例會顯示 If 陳述式語法:

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

當您執行 If 陳述式時,Windows PowerShell® 會評估 <test1> 條件運算式為 true 或 false。如果 <test1> 為 true,便會執行 <陳述式清單 1>,且 Windows PowerShell 會結束 If 陳述式。如果 <test1> 為 false,則 Windows PowerShell 會評估由 <test2> 條件陳述式所指定的條件。

如果 <test2> 為 true,便會執行 <陳述式清單 2>,且 Windows PowerShell 會結束 If 陳述式。如果 <test1> 和 <test2> 均評估為 false,則執行 <陳述式清單 3> 程式碼區塊,且 Windows PowerShell 會結束 If 陳述式。

您可以使用多個 Elseif 陳述式鏈結一連串的條件式測試,以便讓每一項測試只在所有先前測試都為 false 時才執行。如果您需要建立包含許多 Elseif 陳述式的 If 陳述式,請考慮改用 Switch 陳述式。

範例

最簡單的 If 陳述式包含單一命令,但不包含任何 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