[玩转系统] PowerShell 执行 while |了解 do-while 循环在 PowerShell 中如何工作?
作者:精品下载站 日期:2024-12-14 04:53:17 浏览:13 分类:玩电脑
PowerShell 执行 while |了解 do-while 循环在 PowerShell 中如何工作?
PowerShell do while 简介
PowerShell 中的 do-While 循环是迭代循环(for、foreach、while、do-while)之一,它根据提供的条件多次运行块内的内容,运行直到条件为真,并在满足条件时终止。条件变为假时,它还确保循环至少执行一次,并且该循环与 Do-Until 循环相反,Do-Until 循环运行直到条件为真,并在条件变为假时停止。大多数时候,条件是用条件运算符检查的。
语法
Do-While 循环语法
do {
Statement 1
Statement 2
............
............
Statement N
} while (condition)
Do-Until loop syntax
do {
Statement 1
Statement 2
............
............
Statement N
} until (condition)
流程图
Do-While 循环的流程图。
do-while 循环在 PowerShell 中如何工作?
Do-While 循环通过第一次进入循环来确保循环至少执行一次,然后检查条件,如果条件为 True 则进入循环,反之亦然。 例如,
do {
Write-Output "`nThis loop is Guaranteed to execute the first time"
} while ($false)
输出:
如果您看到上面的输出,则即使条件为 false,循环也会执行,因为按照其设计,它首先进入循环,然后在下一次运行时检查 While 条件,直到它变为 false。
如果我们在条件中使用 $true ,循环将变得无限并且永远不会终止,因为条件永远不会变为 false。
相反,相反的循环 do-until 会执行,直到条件成立。例如,
do {
Write-Output "`nUntil is Guaranteed to execute first time"
} until ($true)
输出:
如果我们在这里使用 $false 条件,则循环将永远不会退出,因为 while 内的条件永远不会变为 false。
While、Do-While 循环和 Do-Until 循环之间的区别。
While循环:
$a = 100
While ($a -gt 110) {
$a++
Write-Output "This won't be printed"
}
在上面的 while 循环示例中,不会打印输出
Do-While 循环:
$a = 100
do {
$a++
Write-Host "`nThis line will be printed once only" -BackgroundColor DarkGreen
} while ($a -gt 110)
输出:
在上面的示例中,由于条件变为 false,输出将仅打印一次。
Do-Until 循环:
$a = 100
do {
$a++
Write-Host "`nThis line will be printed 10 times" -BackgroundColor DarkGreen
} until ($a -gt 110)
输出:
示例
以下是下面提到的示例
示例 #1 - 简单的 Do-While 循环。
$i = 0
do {
$i
$i++
} while ($i -lt 5)
输出:
在上面的示例中,$i 变量初始化为 0,并且在 do-while 循环内,每次迭代该值都会增加 1,当 $i 值达到 5 时循环终止。
示例 #2 - 具有多个条件的 Do-While 循环。
$i = 0
$j = 0
do {
Write-Output "i = $i, j= $j"
$i++
$j = $j + 2
} While(($i -lt 5) -and ($j -lt 15))
输出:
在上面的示例中,如果任何条件变为 false,则循环终止。
请参阅具有多个条件的另一个示例。
$i = 0
$j = 0
do {
Write-Output "i = $i, j= $j"
$i++
$j = $j + 2
} While(($i -lt 5) -or ($j -lt 15))
输出:
在上面的示例中,如果两个条件都变为 false,则循环终止,并且对于任何单个 true 条件,它都会进入循环。
示例 #3 - 使用数组进行 Do-While 循环。
我们可以使用 Do-While 循环遍历每个数组项。在下面的例子中,
$animals = @("Cow","Dog","Cat","Elephant")
$i = 0
do{
$animals[$i]
$i++
}while($i -lt $animals.Length)
输出:
在此示例中,会打印 Animals 数组下的每个项目,因为 $i 值从 0 开始,一直持续到 Animal 数组的长度。
示例 #4 - 带 Break 的 Do-While 循环
我们可以使用 Break 语句终止 Do-While 循环。在这个例子中,我们需要如果数组的值满足特定值,则循环应该终止。下面显示了一个示例。
$i = 0
do {
$i
$i = $i + 2
if($i -eq 10){ break }
} while ($i -lt 20)
输出:
当$i的值变为10时,do-while循环自动终止。
示例#5 - 使用Continue 进行Do-While 循环
要跳过特定迭代,请使用Continue 关键字。我们可以将Continue关键字与Do-While循环一起使用,如下所示。
$i = 0
do{
if($i -eq 10) {
$i = $i + 2
Continue
}
$i
$i = $i + 2
}while($i -lt 20)
输出:
在上面的示例中,当 $i 值变为 10 时,接下来在该迭代期间将跳过所有命令,因此此处不显示输出 10。
示例 #6 - 带用户输入提示的 Do-While 循环。
有时我们需要来自用户的输入值,并且我们需要继续直到用户输入正确的输入。您可以使用 Do-While 循环来实现这一点。例如,
$choice = ""
do{
Write-Output "*********************************"
Write-Output "`tPress 'R' to Restart VM"
Write-Output "`tPress 'S' to Shutdown VM"
Write-Output "*********************************"
$choice = Read-Host 'Enter Choice '
switch($choice){
'r' { "Reboot selected"}
's' {"Shutdown selected"}
}
}while(($choice -ne 'r') -and ($choice -ne 's'))
上面的脚本将提示用户输入并继续,直到 $choice 值不再变为“R”或“S”。
输出:
结论
与任何其他循环函数(For、Foreach、While)一样,Do-While 循环在 PowerShell 或各种脚本语言中也非常有用。您可以将此循环用于各种需要循环至少需要执行一次并稍后检查条件的程序。例如,您可以在服务器重新启动后在此循环内使用 Test-WSMan 命令来检查 WINRM 连接是否已建立。
猜你还喜欢
- 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