簡短描述
描述一個語言命令,您可以根據一或多個條件式測試的結果來執行語句清單。
長描述
如果指定的條件測試的計算結果為 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.")
}