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




目录