麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > PowerShell > 正文

Windows Powershell Switch 語句

2020-10-29 21:02:11
字體:
來源:轉載
供稿:網友

下面的例子將If-ElseIF-Else轉換成Switch語句

復制代碼 代碼如下:

# 使用 IF-ElseIF-Else
If( $value -eq 1 )
{
    "Beijing"
}
Elseif( $value -eq 2)
{
    "Shanghai"
}
Elseif( $value -eq 3 )
{
    "Tianjin"
}
Else
{
    "Chongqing"
}
 
# 使用 Switch
switch($value)
{
    1 {"Beijing"}
    2 {"Shanghai"}
    3 {"Tianjin"}
    4 {"Chongqing"}
}

1

測試取值范圍

使用 Switch 時缺省的比較運算符為 -eq 等于,你也可以自己定制比較條件,將條件放在花括號中,必須保證條件表達式的返回值為布爾類型”$True”或”$False”

復制代碼 代碼如下:

$value=18
# 使用 Switch 測試取值范圍
switch($value)
{
    {$_ -lt 10} {"小于10"}
    10  {"等于10"}
    {$_  -gt 10} {"大于10"}
}
#輸出
#大于10

沒有匹配條件

在IF-Else語句中如果沒有合適的條件匹配,可以在Else中進行處理,同樣在Switch語句中如果case中沒有條件匹配,可以使用關鍵字Default進行處理。
同樣是上面的例子,稍加修改:

復制代碼 代碼如下:

$value=-7
# 使用 Switch 測試取值范圍
switch($value)
{
    {($_ -lt 10) -and ( $_ -gt 0) }  {"小于10"}
    10  {"等于10"}
    {$_  -gt 10} {"大于10"}
    Default {"沒有匹配條件"}
}
#Output:
#沒有匹配條件

多個條件匹配

如果case中有多個條件匹配,那么每個匹配的條件都會進行處理,例如:

復制代碼 代碼如下:

$value=2
# 使用 Switch 測試取值范圍
switch($value)
{
    {$_ -lt 5 }  { "小于5" }
    {$_ -gt 0 }   { "大于0" }
    {$_ -lt 100}{ "小于100"}
    Default {"沒有匹配條件"}
}
 
#小于5
#大于0
#小于100

如果碰到匹配條件時只處理一次,可以使用Break關鍵字

復制代碼 代碼如下:

$value=99
# 使用 Switch 測試取值范圍
switch($value)
{
    {$_ -lt 5 }   { "小于5"; break}
    {$_ -gt 0 }   { "大于0"; break}
    {$_ -lt 100}  { "小于100"; break}
    Default {"沒有匹配條件"}
}
 
#大于0

比較字符串

之前的條件比較的都是數字,接下來比較字符串,默認的條件判斷為-eq ,我們知道在Powershell中字符串的使用-eq比較大小寫不敏感,所以才有下面的例子:

復制代碼 代碼如下:

$domain="www.companysz.com"
switch($domain)
{
    "Www.jB51.net" {"Ok 1"}
    "www.VeVb-武林網.net" {"Ok 2" }
    "WWW.jb51.NET" {"Ok 3"}
}
Ok 1
Ok 2
Ok 3

大小寫敏感

怎樣在比較字符串時能夠恢復為大小寫敏感模式,Switch有一個-case 選項,一旦指定了這個選項,比較運算符就會從-eq 切換到 -ceq,即大小寫敏感比較字符串:

復制代碼 代碼如下:

$domain="www.companysz.com"
#大小寫敏感
switch -case ($domain)
{
    "Www.jB51.net" {"Ok 1"}
    "www.VeVb-武林網.net" {"Ok 2" }
    "www.companysz.com" {"Ok 3"}
}
#Ok 3

使用通配符

字符串非常特殊,可是使用通配符,幸運的是Powershell也支持,果然Power啊。但是在Switch語句后要指定 -wildcard 選項

復制代碼 代碼如下:

$domain="www.companysz.com"
#使用通配符
switch -wildcard($domain)
{
    "*"     {"匹配'*'"}
    "*.net" {"匹配*.net" }
    "*.*.*" {"匹配*.*.*"}
}
匹配'*'
匹配*.net
匹配*.*.*

在字符串匹配中,比通配符功能更強大是正則表達式,Powershell的Switch語句也支持,真是太棒了。當然需要給Switch關鍵字指定選項-regex

復制代碼 代碼如下:

$mail="[email protected]"
#使用通配符
switch -regex ($mail)
{
    "^www"     {"www打頭"}
    "net$"     {"net結尾" }
    "d{1,3}.d{1,3}.d{1,3}.d{1,3}" {"IP地址"}
}
 
#www打頭
#net結尾

同時處理多個值

Switch支持對集合所有元素進行匹配,下面的例子使用Powershell Switch語句演示打印水仙花數:

復制代碼 代碼如下:

$value=100..999
switch($value)
{
{[Math]::Pow($_%10,3)+[Math]::Pow( [Math]::Truncate($_%100/10) ,3)+[Math]::Pow( [Math]::Truncate($_/100) , 3) -eq $_} {$_}
}
 
#153
#370
#371
#407

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 毛片av网址| 免费在线观看国产精品 | 欧美成网| 成品片a免人视频 | 黄色免费在线视频网站 | 国产精品一区二区免费在线观看 | 毛片一区二区三区四区 | 欧美黑人xx| 欧美特黄一级高清免费的香蕉 | 麻豆小视频在线观看 | 免费黄色在线 | 国产精品视频亚洲 | 欧美中文字幕在线视频 | 久久久久久久久久网 | 国产噜噜噜 | 黄色特级视频 | 国产精品一区免费在线观看 | 国产精选久久 | 久草在线新时代视觉 | 激情欧美在线 | 精品一区二区三区免费 | va视频| 永久av在线免费观看 | 99精品视频免费 | 国产三级在线观看a | 国产手机在线视频 | 91精品国产乱码久久久久久久久 | 亚洲视频在线视频 | 日日噜噜噜噜久久久精品毛片 | 桥本有菜免费av一区二区三区 | 久久久久国产成人精品亚洲午夜 | 国产精品www | 黄色av片三级三级三级免费看 | 国产精品成人一区 | 欧美性受xxxxxx黑人xyx性爽 | av电影观看 | 欧美日韩高清一区二区三区 | av在线免费在线观看 | 国产噜噜噜| 色婷婷久久一区二区 | fc2成人免费人成在线观看播放 |