Articles

Zapnout v Případě PowerShell

Zapnout v Případě PowerShell

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

Schéma

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:

powershell 1

powershell 1

Kód:

switch("data"){
"abc"{"Abc executed"}
"xyz"{"Xyz Executed"}
"data"{"Data Executed"}
}

Výstup:

powershell 2

powershell 2

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:

powershell 3

powershell 3

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:

powershell 4

powershell 4

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 :

TotalMilliseconds

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:

powershell21

powershell21

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:

powershell 5

powershell 5

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:

powershell 6

powershell 6

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:

powershell 7PNG

powershell 7PNG

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:

powershell 8PNG

powershell 8PNG

Kód:

Switch -Exact -Regex ("Hello"){
"He" {"Hello World"}
"Hi" {"Hi World"}
Default {"No World"}
}

Výstup:

powershell 9PNG

powershell 9PNG

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:

switchcase v prostředí powershell. 2PNG

switchcase v powershell. 2PNG

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:

powershell 10PNG

powershell 10PNG

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 pole

kolem pole

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:

powershell 12PNG

powershell 12PNG

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:

breakcondition

breakcondition

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:

pokračovat stavu

pokračovat stavu

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:

powershell 15PNG

powershell 15PNG

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 –

  1. co je skriptování shellu?
  2. Příkazy PowerShell
  3. PowerShell Operátory
  4. Použití Powershell
  5. Průvodce Pole v prostředí PowerShell s Příklady
  6. Příklady Regex PowerShell
  7. Kompletní Průvodce Funkcí na Shell Skriptování
  8. Naučit Echo v Shell Skriptování
  9. Příklady Spínač Případě Shell Skriptování
  10. Python Switch Case | Jak Implementovat?
3 akcie