Zapnout v Případě PowerShell
Úvod do spínací skříňky v prostředí PowerShell
Přepnout funkci v prostředí PowerShell používá zvládnout více, Pokud prohlášení nebo v jiných podmínkách, je nahrazení více podmínek if/Else if/Else. Chcete-li zkontrolovat jednu podmínku ve skriptu nebo funkci, můžete použít příkaz If/else, ale pokud chcete vyhodnotit více příkazů IF, použijte přepínač.
přepínač je lepší v porovnání s více if příkazy a snadno implementovat a jednoduché použití pro kódování. Pod každým prohlášením existuje více podmínek a když jedna z nich splňuje, provede se akce.
Začněte Svůj Volný Dat Vědy Kurzu,
Hadoop, Data Science, Statistiky & ostatní
Syntaxe:
Switch (<Value>)
{
<Condition1> {Action1}
<Condition2> {Action2}
}
Plné Syntaxe:
Switch ( <value> ) {
"String" | Number | Variable | { expression } { statementlist }
default { statementlist }
}
NEBO
Switch -file {
"String" | Number | Variable | { expression } { statementlist }
default { statementlist }
}
Parametry spínací skříňky v prostředí PowerShell
- Regex: To se také nazývá Regulární Výraz. Provede kontrolu regulárního výrazu proti hodnotě podmínky. Pokud používáte Regex, zástupné znaky a Exacty jsou ignorovány. Pokud klauzule shody není řetězec, je tento parametr ignorován.
- zástupný znak: označuje, že podmínkou je zástupný řetězec. Pokud používáte zástupný znak, Regulární výraz a Exacty jsou ignorovány. Pokud klauzule shody není řetězec, je tento parametr ignorován.
- Exact: provede zápas proti přesnému řetězci. Pokud používáte Exact, zástupný znak a Regex jsou ignorovány a pokud klauzule match není řetězec, pak je tento parametr ignorován.
- CaseSensitive: tento parametr zkontroluje podmínku, která přesně odpovídá předané hodnotě (malá a velká písmena), pokud se neshoduje, pak je tento parametr ignorován. Potřebuje také hodnotu řetězce.
- soubor: bere cestu k souboru jako vstupní hodnotu spíše než hodnotu řetězce. Pokud je předáno více parametrů souboru, trvá pouze poslední. Každý řádek souboru je přečten a vyhodnocen proti podmínce a pokud se podmínka shoduje, provede tuto hodnotu nebo zobrazí písemnou zprávu.
Schéma
Jak se Spínačem Pracuje v PowerShell?
jak je znázorněno na obrázku výše, kdykoli jakákoli hodnota (řetězec, celé číslo, float nebo jiné datové typy), pole, zástupné znaky, soubory atd. je předán pak začne odpovídající podmínky jeden po druhém, a když podmínka odpovídá, skript spustí tento blok. Pro více odpovídajících hodnot bude provedeno více skriptů blok a pokud není nalezena žádná odpovídající hodnota a pokud je zadána výchozí podmínka, provede tento blok jinak je nulový výstup.
Příklady Spínač Případě v PowerShell
podívejme se na uvedený příklad:
Příklad 1
1. Jednoduchá funkce přepínače s řetězcem, předána celočíselná hodnota.
Kód:
switch (3) {
1 {"One"}
2 {"Two"}
3 {"Three"}
}
výstup:
Kód:
switch("data"){
"abc"{"Abc executed"}
"xyz"{"Xyz Executed"}
"data"{"Data Executed"}
}
Výstup:
Nyní, co pokud parametr neodpovídá výrazu. Jako příklad uvedený níže, 5 neodpovídá žádnému z přepínacích případů. V tomto případě bude výstup null.
kód:
switch (5) {
1 {"One"}
2 {"Two"}
3 {"Three"}
}
K překonání výše uvedených problémů, default potřebuje upřesnit a výchozí blok, spustí, když žádný z parametr odpovídá.
Kód:
switch (5) {
1 {"One"}
2 {"Two"}
3 {"Three"}
default{"No Match Found"}
}
Výstup:
Příklad# 2
podívejme se na uvedený příklad:
Rozdíl mezi if / else if /else a Switch. Z níže uvedeného příkladu můžete pochopit, jak je snadné napsat skript s funkcí přepínače.
kód:
$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:
Rozdíl: 31.3154 milisekund
Tento rozdíl se stává obrovský, když píšete masivní skriptu nebo funkce uvnitř spínače.
1. Přepínač s parametrem regulárního výrazu
Pokud je Regex uveden v přepínači, vyhodnotí výraz s předanou hodnotou a pokud se část podmínky shoduje, provede tuto operaci.
zvažte níže uvedený příklad.
Kód:
Switch ("Donkey"){
"Dog" {"Dog is Mentioned"}
"Cat" {"Cat is Mentioned"}
"Don" {"Donkey is Mentioned"}
"key" {"Donkey is mentioned again"}
default {"Nothing is mentioned"}
}
výstup:
Po přidání Regex.
Kód:
Switch -Regex ("Donkey"){
"Dog" {"Dog is Mentioned"}
"Cat" {"Cat is Mentioned"}
"Don" {"Donkey is Mentioned"}
"key" {"Donkey is mentioned again"}
default {"Nothing is mentioned"}
}
Výstup:
2. Přepínač s zástupným parametrem
zástupný znak funguje podobně jako parametr Like.
Kód:
$msg = "Error, WMI connection failed"
Switch -Wildcard ($msg) {
"Error*" {"WMI Error"}
"Warning*" {"WMI Warning"}
"Successful*" {"WMI Connection Successful"}
}
Výstup:
3. Přepínač s přesným parametrem
přesná funkce je ve spínači výchozí. Nezáleží na tom, jestli ji používáte nebo ne. Ale když použijete dva parametry současně, má přednost poslední parametr.
Kód:
Switch -Regex -Exact ("Hello"){
"He" {"Hello World"}
"Hi" {"Hi World"}
Default {"No World"}
}
Výstup:
Kód:
Switch -Exact -Regex ("Hello"){
"He" {"Hello World"}
"Hi" {"Hi World"}
Default {"No World"}
}
Výstup:
4. Přepínač s parametrem souboru
jako parametr můžete zadat cestu k souboru přímo k přepínači. Můžete použít soubor s cestou k souboru místo toho, abyste mu dali variabilní výraz.
Kód:
Switch -Wildcard -File C:\temp\switchtest.txt {
"*Warning*"{Write-Warning $PSItem}
"*Error*"{Write-Error $PSItem}
}
Výstup:
můžete použít $PSItem nebo $_ pro práci s aktuálními položkami.
5. Přepínač s parametrem CaseSensitive
Pokud v přepínači použijete parametr Casesensitive, musí se podmínka shodovat přesně podle každého znaku.
Kód:
switch -CaseSensitive ("Hello") {
"HeLlo" {"This is different HeLlo"}
Default {"This is not Matching"}
}
Výstup:
6. Kolem Pole Hodnota pro přepnutí funkce
Jednoduchý Pole :
switch (10,12) {
9 { "Nine" }
10 { "Ten" }
11 {"Eleven"}
12 {"Twelve"}
Default {"None"}
}
Výstup:
Kolem Objektu Pole
Kód:
$VMOps = @(
"VM_Delete"
"VM_Create"
)
switch ($VMops) {
"VM_Delete" {"VM Delete Operation"}
"VM_Create" {"VM Create Operation"}
"VM_Shutdown" {"VM Shutdown Operation"}
}
Výstup:
7. Podmínka přerušení
Když zadáte podmínku přerušení, operace se v této smyčce přeruší a nemůže pokračovat v dalším provádění. To je docela užitečné, když nechcete kontrolovat další kroky, když podmínka splňuje a doba provádění se zrychluje.
Kód:
$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
}
}
výstup:
Pokud si všimnete, je tam jen jeden blok vykonán a pak je východy z funkce spínače.
8. Pokračovat podmínka
pokračovat parametr se používá k přeskočení konkrétní iterace. Například, pokud existují 3 položky, které se mají shodovat, provede se nejprve a když se podmínka shoduje, přeskočí další kroky a přejde k dalšímu kroku.
Kód:
switch ('Hello') {
"hello" {'First Block Executes'
continue}
'HELLO' {'Second Block Executes'
continue }
'HeLLo' {'Third Block Exectues'
continue }
Default {'Nothing executed'}
}
výstup:
Jak můžete vidět, že je pouze jeden argument předán (‚Ahoj‘), provede se první blok jen proto, že výraz je odpovídající a není tam žádný další argument nechal popravit, skript skončí.
- ještě jeden smíšený příklad přerušení a pokračování přepínačem.
Kód:
switch ('Alpha','Beta','Delta') {
"Alpha" {'First Block Executes'
continue}
'Beta' {'Second Block Executes'
break }
'Delta' {'This will not Execute'}
}
výstup:
Závěr
všichni ve Všech, Vypínač je daleko lepší než provádění více Pokud to podmínky a poskytuje více funkcí a snížení doby provádění.
doporučené články
toto bylo vodítko pro přepnutí případu v PowerShell. Zde také diskutujeme syntaxi, parametry, a příklady případu přepínače v Powershell. Můžete se také podívat na následující články a dozvědět se více –
- co je skriptování shellu?
- Příkazy PowerShell
- PowerShell Operátory
- Použití Powershell
- Průvodce Pole v prostředí PowerShell s Příklady
- Příklady Regex PowerShell
- Kompletní Průvodce Funkcí na Shell Skriptování
- Naučit Echo v Shell Skriptování
- Příklady Spínač Případě Shell Skriptování
- Python Switch Case | Jak Implementovat?
Leave a Reply