Switch 本是多路分支的关键字,但是在Powershell中由于Switch支持集合,所以也可以使用它进行循环处理。下面举两个例子。
第一个将Foreach循环转换成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 奇数
本文链接: https://www.pstips.net/powershell-switch-loop.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
基数的“基”写错了,不是这个字,应该是“奇”
非常感谢,已更新
Hi Mooser,
您好,我想请教您一个问题,我有下面一段脚本是用来跑出3个datacenter中所有的虚拟机,目前这个条件设置我在执行的时候只能一个一个来,我想再加上一条elseif($datacenter -eq “ALL”)用来一下子跑出所有的机器,请问我可以怎么设置这个条件来实现当我选ALL的时候,它会循环执行每个datacenter,非常感谢您的帮助。
Function GetAllFCvms ($datacenter) {
If($datacenter -eq “SCL”) {$DDC = “1”}
elseif($datacenter -eq “CRL”) {$DDC = “2”}
elseif($datacenter -eq “SHA”) {$DDC = “3”}
$AllFCvms = Get-BrokerMachine -AdminAddress $DDC -MaxRecordCount 20
return $AllFCvms}
Apple Liang