Bytt Sak i PowerShell
introduksjon til bytt sak i powershell
bryterfunksjon i powershell brukes til å håndtere flere hvis-setninger eller i andre termer er det erstatning av flere forhold hvis/annet hvis/annet. For å sjekke en enkelt betingelse i Skript eller Funksjon, kan Du bruke If / else-setningen, men hvis du vil evaluere MER HVIS setninger, bruk Bryteren.
Switch er bedre i forhold til flere If-setninger og enkel å implementere og enkel bruk for koding. Det er flere forhold under hver setning, og når en av dem tilfredsstiller, utføres handlingen.
Start Ditt Gratis Datavitenskapskurs
Hadoop, Datavitenskap, Statistikk&andre
syntaks:
Switch (<Value>)
{
<Condition1> {Action1}
<Condition2> {Action2}
}
Full Syntaks:
Switch ( <value> ) {
"String" | Number | Variable | { expression } { statementlist }
default { statementlist }
}
ELLER
Switch -file {
"String" | Number | Variable | { expression } { statementlist }
default { statementlist }
}
Parametere For Brytertilfelle I PowerShell
- regex: det kalles også regulært uttrykk. Utfører Regulære uttrykk sjekk mot verdien av betingelsen. Hvis Du bruker Regex, Blir WildCard og Exacts ignorert. Også, hvis match-klausulen ikke er en streng, ignoreres denne parameteren.
- Jokertegn: Angir at betingelsen er en jokertegnstreng. Hvis Du bruker Jokertegn, Blir Regex og Exacts ignorert. Også, hvis match-klausulen ikke er en streng, ignoreres denne parameteren.
- Eksakt: Utfører kampen mot den eksakte strengen. Hvis Du bruker Eksakt, Ignoreres Jokertegn og Regex, og hvis samsvarssetningen ikke er en streng, ignoreres denne parameteren.
- CaseSensitive: denne parameteren vil kontrollere tilstanden som samsvarer nøyaktig med den passerte Verdien (saksfølsom) hvis den ikke samsvarer, ignoreres denne parameteren. Det trenger også en strengverdi.
- Fil: Tar filbanen som en inndataverdi i stedet for en strengverdi. Hvis flere filparametere er bestått, tar det bare den siste. Hver linje i filen leses og evalueres mot betingelsen, og hvis betingelsen samsvarer, utfører den den verdien eller viser en skriftlig melding.
Flytskjema
Hvordan Fungerer Bryteren I PowerShell?
som vist i over diagrammet, når noen verdi (streng, Heltall, flyte eller andre datatyper), matrise, jokertegn, filer, etc. er passert så det starter matchende forhold en etter en, og når tilstanden matcher, skriptet utfører den blokken. For flere samsvarende verdier, vil flere scrips blokk utføres, og hvis ingen samsvarende verdi funnet, og hvis standardbetingelsen er angitt da den utfører den blokken ellers er det null utgang.
Eksempler På Switch Case I PowerShell
La oss se det gitte eksemplet:
Eksempel# 1
1. Enkel bryterfunksjon med streng, heltall verdi passert.
Kode:
switch (3) {
1 {"One"}
2 {"Two"}
3 {"Three"}
}
Utgang:
Kode:
switch("data"){
"abc"{"Abc executed"}
"xyz"{"Xyz Executed"}
"data"{"Data Executed"}
}
Utgang:
nå, hva om parameteren ikke samsvarer med uttrykket. Som et eksempel gitt nedenfor, samsvarer 5 ikke med Noen Av Brytertilfellene. I dette tilfellet vil utgangen være null.
Kode:
switch (5) {
1 {"One"}
2 {"Two"}
3 {"Three"}
}
for å overvinne problemet ovenfor, må standard angi og standardblokk utføres når ingen av parameteren samsvarer.
Kode:
switch (5) {
1 {"One"}
2 {"Two"}
3 {"Three"}
default{"No Match Found"}
}
Utgang:
Eksempel# 2
La oss se det gitte eksemplet:
forskjell mellom if / else if /else og switch. Fra eksemplet nedenfor kan du forstå hvordan det er enkelt å skrive et skript med Bryterfunksjonen.
Kode:
$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:
Forskjell: 31.3154 millisekunder
denne forskjellen blir stor når du skriver massive skript eller funksjoner inne i bryteren.
1. Hvis Regex er nevnt i switch, evaluerer det uttrykket med bestått verdi, og hvis en del av tilstanden samsvarer, utfører den den operasjonen.
Tenk på eksemplet nedenfor.
Kode:
Switch ("Donkey"){
"Dog" {"Dog is Mentioned"}
"Cat" {"Cat is Mentioned"}
"Don" {"Donkey is Mentioned"}
"key" {"Donkey is mentioned again"}
default {"Nothing is mentioned"}
}
Utgang:
etter å ha lagt Til Regex.
Kode:
Switch -Regex ("Donkey"){
"Dog" {"Dog is Mentioned"}
"Cat" {"Cat is Mentioned"}
"Don" {"Donkey is Mentioned"}
"key" {"Donkey is mentioned again"}
default {"Nothing is mentioned"}
}
Utdata:
2. Bytt Med Jokertegn Parameter
Jokertegn fungerer likt som parameter.
Kode:
$msg = "Error, WMI connection failed"
Switch -Wildcard ($msg) {
"Error*" {"WMI Error"}
"Warning*" {"WMI Warning"}
"Successful*" {"WMI Connection Successful"}
}
Utdata:
3. Bytt Med Eksakt Parameter
Eksakt funksjon er standard I Bryteren. Det spiller ingen rolle om du bruker det eller ikke. Men når du bruker to parametere samtidig, har den siste parameteren forrang.
Kode:
Switch -Regex -Exact ("Hello"){
"He" {"Hello World"}
"Hi" {"Hi World"}
Default {"No World"}
}
Utdata:
Kode:
Switch -Exact -Regex ("Hello"){
"He" {"Hello World"}
"Hi" {"Hi World"}
Default {"No World"}
}
utdata:
4. Bytt Med Filparameter
du kan angi en filbane direkte til Bryteren som parameter. Du kan bruke Fil med en bane til en fil i stedet for å gi den et variabelt uttrykk.
Kode:
Switch -Wildcard -File C:\temp\switchtest.txt {
"*Warning*"{Write-Warning $PSItem}
"*Error*"{Write-Error $PSItem}
}
Utgang:
du kan bruke $PSItem eller $_ for å jobbe med gjeldende Elementer.
5. Bytt Med CaseSensitive parameter
når Du bruker En Casesensitive parameter i en bryter, må tilstanden samsvare nøyaktig med hvert tegn.
Kode:
switch -CaseSensitive ("Hello") {
"HeLlo" {"This is different HeLlo"}
Default {"This is not Matching"}
}
Utdata:
6. Passerer Matrise Verdi for å bytte funksjon
Enkel Matrise :
switch (10,12) {
9 { "Nine" }
10 { "Ten" }
11 {"Eleven"}
12 {"Twelve"}
Default {"None"}
}
Utgang:
passerer Matrise Objekt
kode:
$VMOps = @(
"VM_Delete"
"VM_Create"
)
switch ($VMops) {
"VM_Delete" {"VM Delete Operation"}
"VM_Create" {"VM Create Operation"}
"VM_Shutdown" {"VM Shutdown Operation"}
}
Utdata:
7. Bryt tilstand
Når du angir bryt tilstand, Da Operasjonen bryter i denne sløyfen og kan ikke fortsette videre kjøring. Dette er ganske nyttig når du ikke vil sjekke ytterligere trinn når tilstanden tilfredsstiller og utførelsestiden blir raskere.
Kode:
$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
}
}
Utgang:
hvis du merker, er det bare en blokk utført og så går den ut av bryterfunksjonen.
8. Fortsett Betingelse
fortsett parameter brukes til a hoppe over bestemt iterasjon. For eksempel, hvis det er 3 elementer å matche så det vil utføre først og når tilstand kamper så det vil hoppe over andre trinn og gå til neste trinn.
Kode:
switch ('Hello') {
"hello" {'First Block Executes'
continue}
'HELLO' {'Second Block Executes'
continue }
'HeLLo' {'Third Block Exectues'
continue }
Default {'Nothing executed'}
}
Utgang:
som du kan se er det bare ett argument bestått (‘Hei’), den utfører den første blokken bare fordi uttrykket samsvarer og det er ikke noe annet argument igjen å utføre, vil skriptet ende.
- Et annet blandet eksempel på pause og fortsett Med Bryteren.
Kode:
switch ('Alpha','Beta','Delta') {
"Alpha" {'First Block Executes'
continue}
'Beta' {'Second Block Executes'
break }
'Delta' {'This will not Execute'}
}
Utgang:
Konklusjon
Alt i alt Er Bryteren langt bedre enn å implementere flere If-forhold og gir mer funksjonalitet og reduksjon i kjøretid.
Anbefalte Artikler
Dette har vært en guide For Å Bytte Sak I PowerShell. Her diskuterer vi også syntaksen, parametrene og eksemplene på switch case I Powershell. Du kan også se på følgende artikler for å lære mer-
- Hva Er Shell Scripting?Powershell-Kommandoer
- Powershell-Operatører
- Bruk Av Powershell
- Guide Til Matrise I PowerShell Med Eksempler
- Eksempler På Regex i PowerShell
- Komplett Guide Til Funksjon I Shell Scripting
- Lær Ekkoet I Shell Scripting
- Eksempler På Bytte Sak I Shell Scripting
- Python Switch Case / Hvordan Implementere?
Leave a Reply