当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

作者:精品下载站 日期:2024-12-14 04:53:41 浏览:14 分类:玩电脑

PowerShell 中的 Else If | Else If 中的多个或单个条件运算符


[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

PowerShell 中的 Else If 简介

if/else 条件是脚本语言中最有用的条件,您可能希望在编写脚本时多次使用。如果 If 语句中的第一个条件失败,则第二阶段是 ElseIf 语句。在ElseIf块中,您还可以指定条件或测试值。如果上述两个条件不成立,则最后一个块是Else,不需要任何条件检查,当If和ElseIf语句失败时将直接执行。

语法

if (condition) {<Statement List 1>}
elseif (condition) {<Statement List 2>}
else {<Statement List 3>}

如何使用IF条件?

下面是if条件的详细解释:

1. If 条件流程图

[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

If 条件如何运作?

如上图所示,If语句包含条件。如果条件满足则执行该块。如果有多个 if 语句,则脚本会检查每个 if 语句条件并执行其中为 true 的一个。

If 语句用于评估条件。如果条件成功,则运行块语句。您可以在 If 语句中指定多个条件,具体取决于语句计算条件时使用的运算符(比较、布尔、按位)。

例子

代码:

if((Get-Service Spooler).Status -eq "Running"){
Write-Output "Spooler Service is Running"
}
if((Get-Service Spooler).Status -eq "Stopped"){
Write-Output "Spooler Service is Stopped"
}
if((Get-Service Power).Status -eq "Running"){
Write-Output "Power Service is running"
}

输出:

[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

说明:在上面的示例中,满足两个条件(第一个和最后一个),因此执行两个块。但根据编程标准,不建议使用多个 If 语句,因为它会花费更多的执行时间。相反,我们可以使用 If/elseif/else 块。

2. 嵌套If语句

语法:

if (condition) {
if (condition1) {"Execution Statement1"}
if (condition2) {
"Execution Statement2"
if (condition3) {"Execution Statement3"}
}
}
例子

代码#1:请考虑以下嵌套 If 语句的示例。

$srv = Get-Service Spooler
if($srv){
if($srv.Status -eq "Running"){"Service is Running"}
if($srv.Status -eq "Stopped"){"Service is Stopped"}
}

代码#2:

$srv = Get-Service Spooler
if($srv){
if($srv.Status -eq "Running"){"Service is Running"}
if($srv.Status -eq "Stopped"){"Service is Stopped"}
}

输出:

[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

说明:在此示例中,它首先检查服务是否存在,如果服务存在,则它进入块并再次检查服务是否正在运行或已停止,并相应地执行它们的块。这是解释nestedIfloop 的完美示例。

PowerShell 中的 If /else 功能

如果条件已经满足,那么编写多个 if 语句并不是一个好主意。这样,如果只有一个条件要检查,我们可以使用 else 语句。

语法

if (condition1) {"Execution Statement1"}
else {"Execution Statement2"}

流程图 If/else 条件

[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

例子

代码:

Stop-Service Spooler
if((Get-Service Spooler).Status -eq "Running"){"Spooler service is running"}
else{"Spooler service is stopped"}

在上面的示例中,Spooler 服务已停止,因此无需进一步检查条件即可执行 else 块。

输出:

[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

嵌套 If/else 语句

下面是嵌套 if 语句的示例:

代码:#1

if (condition1) {
if (condition2) {"Execution Statement2"}
else{"Execution Statement2"}
}
else{
"Execution Statement1"
if (condition3) {"Execution Statement3"}
else {"Execution Statement3"}
}

代码:#2

$srv = Get-Service Spooler -ErrorAction Ignore
if($srv){
if($srv.Status -eq "Running"){"Spooler Service is running"}
else{"Spooler Service is not running"}
}
Else{
Write-Output "There is no service with name Spooler"
}

输出:

[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

If/elseif /else 功能 PowerShell

在上面的示例中,我们已经看到,如果有多个 if 条件,则 if 和 else 条件不满足,因此它会检查每个 If 条件,当它们不成立时,则执行 else 语句。在这里,为了满足执行时间标准,我们可以使用另一个 elseif 语句。

语法:

if (condition1) {"Execution Statement1"}
elseif (condition2) {"Execution Statement2"}
elseif (condition2) {"Execution Statement3"}
else {"Execution Statement4"}

流程图 If/elseif/if 条件

[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

例子

代码:

$srv = Get-Service Spooler -ErrorAction Ignore
if($srv.Status -eq "Running"){
"Spooler Service is running"
}
elseif($srv.Status -eq "Stopped"){
"Spooler Service is stopped"
}
else{
"Spooler service is in Start Pending or Stopped pending status"
}

输出:

[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

嵌套 If/elseif /else 语句

下面是嵌套 if 语句的示例:

代码:

[int]$num = Read-Host "Enter Number"
if($num -ge 10){
if($num -lt 15){"Number is less than 15"}
elseif(($num -ge 15) -and ($num -lt 20)){
"Number is between 15 and 20"
}
else{"Number is greater than 20"}
}
elseif(($num -ge 5) -and ($num -lt 10)){
"Number is greater than 5 and less than 10"
}
else{
if($num -gt 2){"Number is greater than 2"}
else{"Number is less than 2"}
}

输出:

[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

多种条件

您可以在单个 If 或 ElseIf 语句中使用多个条件检查,具体取决于您根据需要使用哪些运算符。例如,

代码#1

$srv = Get-Service Spooler
if(($srv.Status -eq "Stopped") -and ($srv.StartType -eq "Automatic")){
"Spooler Service Starttyp is Automatic but in Stopped status"
}
else{"Service is Running or Start type is not Automatic"}

输出:

[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

代码#2

$srv = Get-Service Spooler
if(($srv.Status -eq "Stopped") -or ($srv.Status -eq "Running")){
"Spooler Service is in Stopped or Running State"
}
else{"Spooler Service is StopPending or StartPending State"}

输出:

[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符

与上面的示例一样,您可以在 If 或 elseif 条件中使用多个或单个条件运算符。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯