主题 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