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

另请参阅

about_Comparison_Operators

about_Switch