主题
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,则运行 <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 语句包含一个命令,不包含任何 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