共用方式為


關於 If

簡短描述

描述一個語言命令,您可以根據一或多個條件式測試的結果來執行語句清單。

長描述

如果指定的條件測試的計算結果為 true,則可以使用 If 語句運行代碼塊。 如果所有先前的測試都評估為 false,您也可以指定一或多個額外的條件式測試來執行。 最後,您可以指定一個額外的代碼塊,如果沒有其他先前的條件測試計算結果為 true,則運行該代碼塊。

語法

以下範例顯示了 If 語句語法:

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

運行 If 語句時,PowerShell 會將 <test1> 條件表達式計算為 true 或 false。 If <test1> 為 true, <statement list 1> 則運行,並且 PowerShell 退出 If 語句。 如果 <test1> 為 false,PowerShell 會評估 <test2> 條件語句所指定的條件。

If <test2> 為 true, <statement list 2> 則運行,並且 PowerShell 退出 If 語句。 如果兩者兼而有之, <test1> 則 AND <test2> EVALUATE 為 false, <statement list 3> 則代碼塊運行,並且 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,並且語句 list 將運行。 但是,如果 $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.")
}

另請參閱

關於_比較_運算符

關於 Switch