Windows Powershell Switch 循环_PowerShell

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 基数

PowerShell数组与switch语句,PowerShell中数组可以与switch语句结合,产生意想不到的效果。
PowerShell中数组可以与switch语句结合,产生意想不到的效果。

先看看例子:

复制代码 代码如下:

$myArray = 1,5,4,2,3,5,2,5
Switch ( $myArray ) {
 1 { 'one' }
 2 { 'two' }
 3 { 'three' }
 4 { 'four' }
 5 { 'five' }
}

数组中的所有元素都是在1,2,3,4,5这个范围的。通过一个switch语句,把每个数字做一个翻译。
在switch之后会自动输出,所以,最终的结果就成了:

复制代码 代码如下:

one
five
four
two
three
five
two
five

这是一个很新奇的效果,先记录在这里,后面有需要再来深度挖掘它。

时间: 2024-07-29 09:24:22

Windows Powershell Switch 循环_PowerShell的相关文章

Windows Powershell Switch 语句_PowerShell

下面的例子将If-ElseIF-Else转换成Switch语句 复制代码 代码如下: # 使用 IF-ElseIF-Else If( $value -eq 1 ) {     "Beijing" } Elseif( $value -eq 2) {     "Shanghai" } Elseif( $value -eq 3 ) {     "Tianjin" } Else {     "Chongqing" }   # 使用 S

Windows Powershell ForEach-Object 循环_PowerShell

对管道对象逐个处理 如果使用Get-WmiObject 获取系统中的服务,为了排版可能会也会使用Format-Table对结果进行表格排版. 复制代码 代码如下: PS C:Powershell> Get-WmiObject Win32_Service | Format-Table status,DisplayName -AutoSize status DisplayName ------ ----------- OK     Adobe Acrobat Update Service OK   

Windows Powershell Foreach 循环_PowerShell

下面举两个例子: 复制代码 代码如下: $array=7..10 foreach ($n in $array) {     $n*$n }   #49 #64 #81 #100   foreach($file in dir c:\windows) {     if($file.Length -gt 1mb)     {         $File.Name     } }   #explorer.exe #WindowsUpdate.log 这里只为了演示foreach,其实上面的第二个例子可以

Windows Powershell For 循环_PowerShell

如果你知道循环的确切次数可以使用For循环,For循环属于计数型循环,一旦达到最大次数,循环就会自动终止.下面的例子通过循环求1-100的数列和. 复制代码 代码如下: $sum=0 for($i=1;$i -le 100;$i++) {     $sum+=$i } $sum For循环是特殊类型的While循环 在For循环开始的圆括号中,由分号隔开的语句为循环的控制条件,分别为:初始化,循环执行满足的条件,增量. For循环的控制语句第一个和第三个可以为空: 复制代码 代码如下: $sum

Windows Powershell 自动化变量_PowerShell

Powershell 自动化变量 是那些一旦打开Powershell就会自动加载的变量. 这些变量一般存放的内容包括 用户信息:例如用户的根目录$home 配置信息:例如powershell控制台的大小,颜色,背景等. 运行时信息:例如一个函数由谁调用,一个脚本运行的目录等. PS> $HOME C:\Users\test PS> $currentProcessID=$pid PS> $currentProcessID 5356 PS> Get-Process -Id $pid H

Windows Powershell使用管道_PowerShell

管道并不是什么新事物,以前的Cmd控制台也有重定向的命令,例如Dir | More可以将结果分屏显示. 传统的Cmd管道是基于文本的,但是Powershell是基于对象. PS> ls | Sort-Object -Descending Name | Select-Object Name,Length,LastWriteTime | ConvertTo-Html | Out-File ls.html PS> Get-Content .ls.html Name Length LastWriteT

Windows Powershell 定义变量_PowerShell

变量可以临时保存数据,因此可以把数据保存在变量中,以便进一步操作. #定义变量 $a=10 $b=4 #计算变量 $result=$a*$b $msg="保存文本" #输出变量 $result $msg 40 保存文本 powershell 不需要显示地去声明,可以自动创建变量,只须记住变量的前缀为$. 创建好了变量后,可以通过变量名输出变量,也可以把变量名存在字符串中.但是有个例外单引号中的字符串不会识别和处理变量名. 选择变量名 在powershell中变量名均是以美元符"

Windows Powershell 环境变量_PowerShell

传统的控制台一般没有象Powershell这么高级的变量系统.它们都是依赖于机器本身的环境变量,进行操作 .环境变量对于powershell显得很重要,因为它涵盖了许多操作系统的细节信息.此外,powershell中的变量只存在于powershell内部的会话中,一旦powershell关闭,这些变量就会自生自灭.但是如果环境变量被更新了,它会继续保存在操作系统中,即使其它程序也可以调用它. 读取特殊的环境变量 通过环境变量读取Windows操作系统的安装路径,和默认应用程序的安装路径. PS>

Windows Powershell 创建数组_PowerShell

在Powershell中创建数组可以使用逗号. PS C:Powershell> $nums=2,0,1,2 PS C:Powershell> $nums 2 0 1 2 对于连续的数字数组可以使用一个更快捷的方法 PS C:Powershell> $nums=1..5 PS C:Powershell> $nums 1 2 3 4 5 数组的多态 象变量一样如果数组中元素的类型为弱类型,默认可以存储不同类型的值. PS C:Powershell> $array=1,"