主頁(yè) > 知識(shí)庫(kù) > Windows Powershell Switch 語(yǔ)句

Windows Powershell Switch 語(yǔ)句

熱門(mén)標(biāo)簽:地圖標(biāo)注的圖案 萬(wàn)全縣地圖標(biāo)注app 六寸地圖標(biāo)注點(diǎn)怎么刪除 電話(huà)機(jī)器人公司招聘 騰訊地圖標(biāo)注中心怎么標(biāo)注 如何根據(jù)經(jīng)緯度百度地圖標(biāo)注 新鄭電銷(xiāo)機(jī)器人一個(gè)月多少錢(qián) 莫拉克電梯系統(tǒng)外呼怎么設(shè)置 印臺(tái)區(qū)呼叫中心外呼系統(tǒng)

下面的例子將If-ElseIF-Else轉(zhuǎn)換成Switch語(yǔ)句

復(fù)制代碼 代碼如下:

# 使用 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”

復(fù)制代碼 代碼如下:

$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)行處理。
同樣是上面的例子,稍加修改:

復(fù)制代碼 代碼如下:

$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)行處理,例如:

復(fù)制代碼 代碼如下:

$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)鍵字

復(fù)制代碼 代碼如下:

$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ě)不敏感,所以才有下面的例子:

復(fù)制代碼 代碼如下:

$domain="www.jb51.net"
switch($domain)
{
    "Www.jB51.net" {"Ok 1"}
    "www.JB51.net" {"Ok 2" }
    "WWW.jb51.NET" {"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ě)敏感比較字符串:

復(fù)制代碼 代碼如下:

$domain="www.jb51.net"
#大小寫(xiě)敏感
switch -case ($domain)
{
    "Www.jB51.net" {"Ok 1"}
    "www.JB51.net" {"Ok 2" }
    "www.jb51.net" {"Ok 3"}
}
#Ok 3

使用通配符

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

復(fù)制代碼 代碼如下:

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

在字符串匹配中,比通配符功能更強(qiáng)大是正則表達(dá)式,Powershell的Switch語(yǔ)句也支持,真是太棒了。當(dāng)然需要給Switch關(guān)鍵字指定選項(xiàng)-regex

復(fù)制代碼 代碼如下:

$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ù):

復(fù)制代碼 代碼如下:

$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)題解決

標(biāo)簽:疫苗接種 臨汾 汕頭 喀什 南昌 天水 湘潭 襄陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Windows Powershell Switch 語(yǔ)句》,本文關(guān)鍵詞  Windows,Powershell,Switch,語(yǔ)句,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Windows Powershell Switch 語(yǔ)句》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Windows Powershell Switch 語(yǔ)句的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章