Windows Powershell Switch 語(yǔ)句
下面的例子將If-ElseIF-Else轉(zhuǎn)換成Switch語(yǔ)句
# 使用 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
測(cè)試取值范圍
使用 Switch 時(shí)缺省的比較運(yùn)算符為 -eq 等于,你也可以自己定制比較條件,將條件放在花括號(hào)中,必須保證條件表達(dá)式的返回值為布爾類(lèi)型”$True”或”$False”
$value=18
# 使用 Switch 測(cè)試取值范圍
switch($value)
{
{$_ -lt 10} {"小于10"}
10 {"等于10"}
{$_ -gt 10} {"大于10"}
}
#輸出
#大于10
沒(méi)有匹配條件
在IF-Else語(yǔ)句中如果沒(méi)有合適的條件匹配,可以在Else中進(jìn)行處理,同樣在Switch語(yǔ)句中如果case中沒(méi)有條件匹配,可以使用關(guān)鍵字Default進(jìn)行處理。
同樣是上面的例子,稍加修改:
$value=-7
# 使用 Switch 測(cè)試取值范圍
switch($value)
{
{($_ -lt 10) -and ( $_ -gt 0) } {"小于10"}
10 {"等于10"}
{$_ -gt 10} {"大于10"}
Default {"沒(méi)有匹配條件"}
}
#Output:
#沒(méi)有匹配條件
多個(gè)條件匹配
如果case中有多個(gè)條件匹配,那么每個(gè)匹配的條件都會(huì)進(jìn)行處理,例如:
$value=2
# 使用 Switch 測(cè)試取值范圍
switch($value)
{
{$_ -lt 5 } { "小于5" }
{$_ -gt 0 } { "大于0" }
{$_ -lt 100}{ "小于100"}
Default {"沒(méi)有匹配條件"}
}
#小于5
#大于0
#小于100
如果碰到匹配條件時(shí)只處理一次,可以使用Break關(guān)鍵字
$value=99
# 使用 Switch 測(cè)試取值范圍
switch($value)
{
{$_ -lt 5 } { "小于5"; break}
{$_ -gt 0 } { "大于0"; break}
{$_ -lt 100} { "小于100"; break}
Default {"沒(méi)有匹配條件"}
}
#大于0
比較字符串
之前的條件比較的都是數(shù)字,接下來(lái)比較字符串,默認(rèn)的條件判斷為-eq ,我們知道在Powershell中字符串的使用-eq比較大小寫(xiě)不敏感,所以才有下面的例子:
$domain="chabaoo.cn"
switch($domain)
{
"chabaoo.cn" {"Ok 1"}
"chabaoo.cn" {"Ok 2" }
"chabaoo.cn" {"Ok 3"}
}
Ok 1
Ok 2
Ok 3
大小寫(xiě)敏感
怎樣在比較字符串時(shí)能夠恢復(fù)為大小寫(xiě)敏感模式,Switch有一個(gè)-case 選項(xiàng),一旦指定了這個(gè)選項(xiàng),比較運(yùn)算符就會(huì)從-eq 切換到 -ceq,即大小寫(xiě)敏感比較字符串:
$domain="chabaoo.cn"
#大小寫(xiě)敏感
switch -case ($domain)
{
"chabaoo.cn" {"Ok 1"}
"chabaoo.cn" {"Ok 2" }
"chabaoo.cn" {"Ok 3"}
}
#Ok 3
使用通配符
字符串非常特殊,可是使用通配符,幸運(yùn)的是Powershell也支持,果然Power啊。但是在Switch語(yǔ)句后要指定 -wildcard 選項(xiàng)
$domain="chabaoo.cn"
#使用通配符
switch -wildcard($domain)
{
"*" {"匹配'*'"}
"*.net" {"匹配*.net" }
"*.*.*" {"匹配*.*.*"}
}
匹配'*'
匹配*.net
匹配*.*.*
在字符串匹配中,比通配符功能更強(qiáng)大是正則表達(dá)式,Powershell的Switch語(yǔ)句也支持,真是太棒了。當(dāng)然需要給Switch關(guān)鍵字指定選項(xiàng)-regex
$mail="www@jb51.net"
#使用通配符
switch -regex ($mail)
{
"^www" {"www打頭"}
"net$" {"net結(jié)尾" }
"d{1,3}.d{1,3}.d{1,3}.d{1,3}" {"IP地址"}
}
#www打頭
#net結(jié)尾
同時(shí)處理多個(gè)值
Switch支持對(duì)集合所有元素進(jìn)行匹配,下面的例子使用Powershell Switch語(yǔ)句演示打印水仙花數(shù):
$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
- Windows Powershell Switch 循環(huán)
- window下homestead開(kāi)發(fā)環(huán)境安裝詳細(xì)教程
- 詳細(xì)分析Windows Home Server是什么?
- Windows Home Server OEM 正式版 下載地址
- 解決windows10下"sqlplus / as sysdba"執(zhí)行提示無(wú)權(quán)限問(wèn)題
- Windows下Apache應(yīng)用環(huán)境塔建安全設(shè)置(目錄權(quán)限設(shè)置)
- windows10打開(kāi)switchHost 提示無(wú)修改權(quán)限問(wèn)題解決
相關(guān)文章
Powershell實(shí)現(xiàn)獲取電腦序列號(hào)功能腳本分享
這篇文章主要介紹了Powershell實(shí)現(xiàn)獲取電腦序列號(hào)功能腳本分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03PowerShell小技巧之獲取TCP響應(yīng)(類(lèi)Telnet)
這篇文章主要介紹了使用PowerShell獲取TCP響應(yīng)(類(lèi)Telnet)的小技巧,需要的朋友可以參考下2014-10-10Windows Powershell 自定義控制臺(tái)
這篇文章主要介紹了Windows Powershell 自定義控制臺(tái),包括選項(xiàng)、字體、布局和顏色四個(gè)方面的自定義風(fēng)格,希望對(duì)大家有所幫助2014-08-08PowerShell腳本開(kāi)發(fā)之對(duì)指定IP進(jìn)行端口掃描
在本文通過(guò)一段小腳本的方式引入了通過(guò)PowerShell實(shí)現(xiàn)簡(jiǎn)單安全滲透功能的想法,首先介紹了該小腳本是如何實(shí)現(xiàn)功能的,接下來(lái)對(duì)創(chuàng)建腳本工具集并導(dǎo)入的方法,隨后又在該工具集中創(chuàng)建了Test-TCPPort函數(shù),并介紹了調(diào)用方法.2014-10-10PowerShell 自動(dòng)備份oracle并上傳到ftp
我這里有這樣一個(gè)需求:有一個(gè)數(shù)據(jù)庫(kù),每天使用SQL Server Agent自動(dòng)生成備份文件。然后,這個(gè)數(shù)據(jù)庫(kù)非常重要,需要把每天的備份上傳一個(gè)遠(yuǎn)程的FTP服務(wù)器上去。下面我們來(lái)看看如何使用Powershell來(lái)實(shí)現(xiàn)吧2015-08-08Python中調(diào)用PowerShell、遠(yuǎn)程執(zhí)行bat文件實(shí)例
這篇文章主要介紹了Python中調(diào)用PowerShell、遠(yuǎn)程執(zhí)行bat文件實(shí)例,本文給出了python調(diào)用本地powershell方法、python遠(yuǎn)程調(diào)用bat執(zhí)行命令方法,需要的朋友可以參考下2015-01-01PowerShell中的TimeSpan時(shí)間差對(duì)象使用實(shí)例
這篇文章主要介紹了PowerShell中的TimeSpan對(duì)象使用實(shí)例,TimeSpan對(duì)象表示一個(gè)時(shí)間差,本文介紹了多種獲取時(shí)間差的方法,需要的朋友可以參考下2014-08-08