PowerShell命令与脚本(8)——循环
2021/6/26 7:26:55
本文主要是介绍PowerShell命令与脚本(8)——循环,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
ForEach-Object循环
Powershell管道就像流水线,对于数据的处理是一个环节接着一个环节,如果你想在某一环节对流进来的数据逐个细致化的处理,可是使用ForEach-Object,$_ 代表当前的数据。 1、对管道对象逐个处理 如果使用Get-WmiObject 获取系统中的服务,为了排版可能会也会使用Format-Table对结果进行表格排版。 但是如果想对每个服务进行更定制化的处理可是使用ForEach-Object 2、结合条件处理 ForEach-Object的处理可以包含任意Powershell脚本,当然也包括条件语句Get-WmiObject Win32_Service | ForEach-Object{ if($_.ProcessId -gt 3000) {"{0}({1})" -f $_.DisplayName,$_.ProcessId} }3、调用方法 在ForEach-Object中,$_代表当前对象,当然也允许通过$_,调用该对象支持的方法。 下面的例子杀死所有IE浏览器进程:
Do While循环
Do和While可能产生死循环,为了防止死循环的发生,你必须确切的指定循环终止的条件。指定了循环终止的条件后,一旦条件不满足就会退出循环。 单独使用While$n=5 while($n -gt 0) { $n $n=$n-1 } #5 #4 #3 #2 #1终止当前循环 使用continue关键字,可是终止当前循环,跳过continue后其它语句,重新下一次循环。
$n=1 while($n -lt 6) { if($n -eq 4) { $n=$n+1 continue } else { $n } $n=$n+1 } #1 #2 #3 #5跳出循环语句 跳出循环语句使用break关键字
$n=1 while($n -lt 6) { if($n -eq 4) { break } $n $n++ }
For循环
如果你知道循环的确切次数可以使用For循环,For循环属于计数型循环,一旦达到最大次数,循环就会自动终止。下面的例子通过循环求1-100的数列和。$Sum=0 For($i=1;$i -le 100;$i++) { $sum+=$i } $sumFor循环是特殊类型的While循环 在For循环开始的圆括号中,由分号隔开的语句为循环的控制条件,分别为:初始化,循环执行满足的条件,增量。 For循环的控制语句第一个和第三个可以为空:
$sum=0 $i=1 for(;$i -le 100;) { $sum+=$i $i++ } $sumFor循环的特殊应用 上面的For循环示例停留在数字层面上,其实While循环能办到的事,For循环也可以,只是可能有时不方便而已。例如判断域名的例子:
for($domain="";!($domain -like "www.*.*");$domain=Read-Host "Input domain") { Write-Host -ForegroundColor "Green" "Please give a valid domain name." }下面的例子演示逐行读取文本文件
for($file=[IO.File]::OpenText("D:\game\test.txt") ; !($file.EndOfStream);$line=$file.ReadLine() ) { $line; } $file.Close()
Switch循环
Switch 本是多路分支的关键字,但是在Powershell中由于Switch支持集合,所以也可以使用它进行循环处理。下面举两个例子。#使用Foreach循环 $nums=10..7 foreach($n in $nums) { "n=$n" } n=10 n=9 n=8 n=7 #使用Switch循环 $nums = 10..7 Switch ($nums) { Default { "n= $_" } } n= 10 n= 9 n= 8 n= 7有时对集合的处理,在循环中还须条件判断,使用Switch循环可以一部到位,例如:
$nums = 10..7 Switch ($nums) { {($_ % 2) -eq 0} {"$_ 偶数"} {($_ % 2) -ne 0} {"$_ 奇数"} } 10 偶数 9 奇数 8 偶数 7 奇数
这篇关于PowerShell命令与脚本(8)——循环的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-09-14SharePoint 2019 用 PowerShell将启用发布功能站点网站集另存为模板
- 2022-08-30PowerShell教程 - 程序性能和BUG分析工具
- 2022-08-30PowerShell教程 - 模块管理(Modules Management)
- 2022-08-29PowerShell教程 - Web requests(Web请求)
- 2022-08-26PowerShell教程 - 日期时间管理(Date & Time Management)
- 2022-08-25PowerShell教程 - 磁盘与硬件管理(Disk & Hardware Management)
- 2022-08-25PowerShell教程 - 系统事件管理(System Event Management)
- 2022-08-25PowerShell教程 - 文件系统管理(File System Management)
- 2022-08-24PowerShell教程 - 网络管理(Network Management)
- 2022-08-24PowerShell