Switch Case in PowerShell
johdatus kytkintapaukseen powershellissa
kytkintoimintoa powershellissa käytetään käsittelemään useita if-lausekkeita tai muilla termeillä se korvaa useita ehtoja if/else if/else. Voit tarkistaa yhden ehdon skriptissä tai funktiossa käyttämällä If/else-lauseketta, mutta jos haluat arvioida enemmän IF-lausekkeita, käytä Switchiä.
kytkin on parempi verrata useita If lausuntoja ja helppo toteuttaa ja yksinkertainen käyttö koodaus. On olemassa useita ehtoja kunkin lausuman ja kun yksi niistä täyttää sitten toiminta suoritetaan.
Aloita ilmainen Data Science-kurssi
Hadoop, Data Science, Statistics&muut
/ div>
syntaksi:
Switch (<Value>)
{
<Condition1> {Action1}
<Condition2> {Action2}
}
täysi syntaksi:
Switch ( <value> ) {
"String" | Number | Variable | { expression } { statementlist }
default { statementlist }
}
Switch -file {
"String" | Number | Variable | { expression } { statementlist }
default { statementlist }
}
Kytkintapauksen parametrit Powershellissa
- regex: sitä kutsutaan myös säännölliseksi lausekkeeksi. Suorittaa säännöllisen lausekkeen tarkistuksen suhteessa ehdon arvoon. Jos käytät Regex, WildCard ja Exacts ohitetaan. Myös, jos match lauseke ei ole merkkijono, tämä parametri ohitetaan.
- jokerimerkki: ilmaisee, että ehto on jokerimerkkijono. Jos käytät jokerimerkkiä, Regex ja exact jätetään huomiotta. Myös, jos match lauseke ei ole merkkijono, tämä parametri ohitetaan.
- Exact: suorittaa ottelun tarkkaa narua vastaan. Jos käytät eksaktia, yleismerkki ja Regex ohitetaan ja jos täsmäyslauseke ei ole merkkijono, tämä parametri ohitetaan.
- Tapauksenherkkä: tämä parametri tarkistaa ehdon, joka vastaa täsmälleen hyväksyttyä arvoa (kirjainkoko herkkä), jos se ei täsmää, tämä parametri ohitetaan. Se tarvitsee myös merkkijonon arvon.
- tiedosto: ottaa tiedostopolun syötearvona merkkijonon arvon sijaan. Jos Useita tiedostoparametreja ohitetaan, se vie vain viimeisen. Jokainen rivi tiedoston luetaan ja arvioidaan suhteessa ehto ja jos ehto vastaa niin se suorittaa, että arvo tai näyttää kirjallisen viestin.
vuokaavio
miten kytkin toimii Powershellissa?
kuten yllä olevassa kaaviossa, aina kun jokin arvo (merkkijono, kokonaisluku, float tai muut tietotyypit), array, jokerimerkit, tiedostot jne. on läpäissyt sitten se alkaa täsmäävät ehdot yksitellen ja kun ehto vastaa, skripti suorittaa että lohko. Useita vastaavia arvoja, useita scrips lohko suoritetaan ja jos vastaavaa arvoa ei löydy ja jos oletusarvo on määritetty niin se suorittaa, että lohko muuten on nollatulos.
Examples of Switch Case in PowerShell
Let us see the given example:
Example# 1
1. Yksinkertainen kytkin toiminto merkkijono, kokonaisluku arvo läpäissyt.
Code:
switch (3) {
1 {"One"}
2 {"Two"}
3 {"Three"}
}
Lähtö:
Code:
switch("data"){
"abc"{"Abc executed"}
"xyz"{"Xyz Executed"}
"data"{"Data Executed"}
}
Lähtö:
PowerShell 2
nyt, mitä jos parametri ei vastaa lauseketta. Esimerkkinä alla, 5 ei vastaa mitään Kytkin tapauksissa. Tällöin lähtö on nolla.
koodi:
switch (5) {
1 {"One"}
2 {"Two"}
3 {"Three"}
}
edellä mainitun ongelman ratkaisemiseksi on oletusarvoisesti määritettävä ja oletuslohko suoritetaan, kun mikään parametrista ei täsmää.
Code:
switch (5) {
1 {"One"}
2 {"Two"}
3 {"Three"}
default{"No Match Found"}
}
Lähtö:
Esimerkki# 2
Katsotaanpa annettua esimerkkiä:
ero if / else if /else-ja Switch-välillä. Alla olevasta esimerkistä voit ymmärtää, miten Switch-toiminnolla on helppo kirjoittaa skripti.
koodi:
$time = 3
if($time -eq 1){"It's 1 O'Clock"}
elseif ($time -eq 2) {"It's 2 O'Clock"}
elseif ($time -eq 3) {"It's 3 O'Clock"}
else {"No Match Found"}
$time = 3
switch ($time) {
1 {"It's 1 O'Clock"}
2 {"It's 2 O'Clock"}
3 {"It's 3 O'Clock"}
default{"No Match found"}
}
Output:
Execution time for both the methods.
Code:
$time = 3
Measure-Command {
if($time -eq 1){"It's 1 O'Clock"}
elseif ($time -eq 2) {"It's 2 O'Clock"}
elseif ($time -eq 3) {"It's 3 O'Clock"}
else {"No Match Found"}
}
TotalMilliseconds :
Code:
$time = 3
Measure-Command {
switch ($time) {
1 {"It's 1 O'Clock"}
2 {"It's 2 O'Clock"}
3 {"It's 3 O'Clock"}
default{"No Match found"}
}
}
TotalMilliseconds:
ero: 31,3154 millisekuntia
Tämä ero tulee valtavaksi, kun kirjoittaa massiivisia skriptejä tai funktioita Kytkimen sisälle.
1. Switch with Regex-parametri
Jos Regex mainitaan Switchissä, se arvioi lausekkeen läpäistyllä arvolla ja jos osa ehdosta täsmää, se suorittaa kyseisen toiminnon.
tarkastellaan alla olevaa esimerkkiä.
Code:
Switch ("Donkey"){
"Dog" {"Dog is Mentioned"}
"Cat" {"Cat is Mentioned"}
"Don" {"Donkey is Mentioned"}
"key" {"Donkey is mentioned again"}
default {"Nothing is mentioned"}
}
Lähtö:
Regexin lisäämisen jälkeen.
Code:
Switch -Regex ("Donkey"){
"Dog" {"Dog is Mentioned"}
"Cat" {"Cat is Mentioned"}
"Don" {"Donkey is Mentioned"}
"key" {"Donkey is mentioned again"}
default {"Nothing is mentioned"}
}
Lähtö:
2. Switch with Wildcard Parameter
Wildcard toimii samalla tavalla kuin Like-parametri.
Code:
$msg = "Error, WMI connection failed"
Switch -Wildcard ($msg) {
"Error*" {"WMI Error"}
"Warning*" {"WMI Warning"}
"Successful*" {"WMI Connection Successful"}
}
Lähtö:
3. Kytkin, jolla on tarkka parametri
tarkka toiminto, on oletuksena kytkimessä. Ei ole väliä käytätkö sitä vai et. Mutta kun käytät kahta parametria samanaikaisesti, viimeinen parametri on etusijalla.
Code:
Switch -Regex -Exact ("Hello"){
"He" {"Hello World"}
"Hi" {"Hi World"}
Default {"No World"}
}
Output:
Code:
Switch -Exact -Regex ("Hello"){
"He" {"Hello World"}
"Hi" {"Hi World"}
Default {"No World"}
}
lähtö:
4. Vaihda Tiedostoparametrilla
voit antaa tiedostopolun suoraan kytkimelle parametrina. Voit käyttää tiedostoa, jossa on tiedoston polku sen sijaan, että antaisit sille muuttuvan lausekkeen.
Code:
Switch -Wildcard -File C:\temp\switchtest.txt {
"*Warning*"{Write-Warning $PSItem}
"*Error*"{Write-Error $PSItem}
}
Output:
voit käyttää $PSItem: ia tai$_: ia työstääksesi ajankohtaisia kohteita.
5. Vaihda Tapauksenherkkä parametri
Kun käytät Tapauksenherkkä parametri kytkin, niin ehto on vastattava täsmälleen kunkin merkin.
Code:
switch -CaseSensitive ("Hello") {
"HeLlo" {"This is different HeLlo"}
Default {"This is not Matching"}
}
Lähtö:
6. Passing Array Value to switch function
Simple Array :
switch (10,12) {
9 { "Nine" }
10 { "Ten" }
11 {"Eleven"}
12 {"Twelve"}
Default {"None"}
}
Output:
Passing Array Object
code:
$VMOps = @(
"VM_Delete"
"VM_Create"
)
switch ($VMops) {
"VM_Delete" {"VM Delete Operation"}
"VM_Create" {"VM Create Operation"}
"VM_Shutdown" {"VM Shutdown Operation"}
}
Lähtö:
7. Katkotilanne
kun määrität katkotilan, operaatio katkeaa kyseisessä silmukassa eikä voi jatkaa suoritusta. Tämä on melko hyödyllistä, kun et halua tarkistaa muita vaiheita, kun kunto täyttää ja suoritusaika tulee nopeammin.
Code:
$VMOps = @(
"VM_Delete"
"VM_Create"
)
switch ($VMops) {
"VM_Delete" {
"VM Delete Operation"
break }
"VM_Create" {
"VM Create Operation"
break}
"VM_Shutdown" {
"VM Shutdown Operation"
break
}
}
Lähtö:
Jos huomaat, suoritetaan vain yksi lohko, jonka jälkeen se poistuu kytkintoiminnosta.
8. Continue Condition
Continue-parametria käytetään tietyn iteraation ohittamiseen. Esimerkiksi, jos on 3 kohdetta vastaamaan niin se suorittaa ensin ja kun kunto ottelut niin se ohittaa muut vaiheet ja siirtyä seuraavaan vaiheeseen.
Code:
switch ('Hello') {
"hello" {'First Block Executes'
continue}
'HELLO' {'Second Block Executes'
continue }
'HeLLo' {'Third Block Exectues'
continue }
Default {'Nothing executed'}
}
Lähtö:
kuten näette, on vain yksi argumentti hyväksytty (”Hello”), se suorittaa ensimmäisen lohkon vain koska lauseke on vastaava eikä muuta argumenttia ole jäljellä, skripti päättyy.
- vielä yksi sekalainen esimerkki breakista ja jatkaa Switchillä.
Code:
switch ('Alpha','Beta','Delta') {
"Alpha" {'First Block Executes'
continue}
'Beta' {'Second Block Executes'
break }
'Delta' {'This will not Execute'}
}
Lähtö:
Conclusion
kaiken kaikkiaan Switch on paljon parempi kuin multiple If-olosuhteiden toteuttaminen ja tarjoaa enemmän toiminnallisuutta ja lyhentää suoritusaikaa.
suositellut artikkelit
Tämä on ollut ohje Vaihtotapaukseen Powershellissa. Tässä keskustelemme myös syntaksista, parametreista ja switch-tapauksen esimerkeistä Powershellissa. Voit myös katsoa seuraavia artikkeleita oppiaksesi lisää –
- mitä on Shell Scripting?
- PowerShell Commands
- Uses Of Powershell
- Guide to Array in PowerShell with Examples
- Examples of Regex in PowerShell
- Complete Guide to Function in Shell Scripting
- Examples of Switch Case in Shell Scripting
- Python Switch Case | How to Implement?
Leave a Reply