[玩转系统] PowerShell 中的 Else If | Else If 中的多个或单个条件运算符
作者:精品下载站 日期:2024-12-14 04:53:41 浏览:14 分类:玩电脑
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 条件流程图
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"
}
输出:
说明:在上面的示例中,满足两个条件(第一个和最后一个),因此执行两个块。但根据编程标准,不建议使用多个 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"}
}
输出:
说明:在此示例中,它首先检查服务是否存在,如果服务存在,则它进入块并再次检查服务是否正在运行或已停止,并相应地执行它们的块。这是解释nestedIfloop 的完美示例。
PowerShell 中的 If /else 功能
如果条件已经满足,那么编写多个 if 语句并不是一个好主意。这样,如果只有一个条件要检查,我们可以使用 else 语句。
语法
if (condition1) {"Execution Statement1"}
else {"Execution Statement2"}
流程图 If/else 条件
例子
代码:
Stop-Service Spooler
if((Get-Service Spooler).Status -eq "Running"){"Spooler service is running"}
else{"Spooler service is stopped"}
在上面的示例中,Spooler 服务已停止,因此无需进一步检查条件即可执行 else 块。
输出:
嵌套 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"
}
输出:
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 条件
例子
代码:
$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"
}
输出:
嵌套 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"}
}
输出:
多种条件
您可以在单个 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"}
输出:
代码#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"}
输出:
与上面的示例一样,您可以在 If 或 elseif 条件中使用多个或单个条件运算符。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag