关于 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。 如果 <test1>
为 true, <statement list 1>
则运行和 PowerShell 退出该 If
语句。 如果 <test1>
为 false,PowerShell 将评估条件语句指定的 <test2>
条件。
如果 <test2>
为 true, <statement list 2>
则运行和 PowerShell 退出该 If
语句。 如果同时<test1>
<test2>
计算结果为 false,代码<statement list 3
>块将运行,PowerShell 将退出 If 语句。
可以使用多个 Elseif 语句链接一系列条件测试。 因此,仅当以前的所有测试均为 false 时,才会运行每个测试。
如果需要创建包含 If
多个 Elseif 语句的语句,请考虑改用 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.")
}