Come utilizzare l'istruzione Switch in PowerShell

Come utilizzare l'istruzione Switch in PowerShell
Logica condizionale è un concetto implementato in ogni linguaggio di programmazione. Viene utilizzato per controllare qualsiasi condizione, che sia successo o meno qualcosa, e quindi eseguire alcune operazioni in base a quella condizione. Ad esempio, la logica condizionale può valutare lo stato dello spazio libero in uno script che genera un rapporto di tutto lo spazio del disco, contrassegnato come normale, avvertimento o critico in base a una soglia predeterminata.

Powershell Offre comandi o cmdlet per regolare il flusso di esecuzione dei tuoi script, proprio come molte altre lingue, e il "interruttore"La dichiarazione è una di queste. Oggi tratteremo l'argomento Come utilizzare le dichiarazioni di switch in PowerShell.

Qual è l'istruzione Switch in PowerShell?

In Powershell, Il comando o l'istruzione switch viene utilizzato per gestire numerosi "Se"Dichiarazioni, o in altre parole, possiamo dire che sostituisce diverse"se altro"Dichiarazioni. Se altro Le istruzioni possono essere utilizzate per verificare una singola condizione in uno script o funzione, ma le istruzioni di switch vengono utilizzate per valutare molti "Se"Dichiarazioni.

Rispetto a diversi "Se"Dichiarazioni, le dichiarazioni di switch sono più facili da implementare per la codifica. Ogni affermazione ha qualche condizione e se una di esse è "VERO,"Quindi verranno eseguite alcune operazioni, che viene fornita nel blocco dei casi di switch. Ecco il diagramma di flusso del Dichiarazione di commutazione:

Sintassi dell'istruzione switch

IL "Interruttore"È la parola chiave utilizzata per l'aggiunta di un'istruzione switch nel tuo script. IL "Valore"È il parametro utilizzato per definire il"espressione" di qualsiasi "Valore"Che verrà utilizzato in condizioni di test. In parentesi graffe , Definisci il tuo "Condizioni"Separatamente e all'interno di quelle parenti ricci delle condizioni specificano le operazioni che verranno eseguite nel caso in cui la condizione venga testata "VERO".

interruttore ()

Operazione 1
Operazione 2

Utilizzo dell'istruzione Switch in PowerShell

Dimostrare Come utilizzare il comando switch in powershell, Creeremo uno script PowerShell. Apri i tuoi Windows Powershell ISE e crea un nuovo file.

In questo script, l'istruzione Switch prenderà "3"Come condizione e stamperà il corpo della condizione se una delle custodie corrisponde al"3".

switch (3)
1 "gennaio"
2 "febbraio"
3 "marzo"

Salva lo script come "testfile1.PS1"Ed eseguilo.

Switch Dichiarazione per corrispondenza dei valori numerici in PowerShell

Utilizzare un'istruzione switch per controllare varie condizioni. La custodia Switch è simile a una serie di "Se"Dichiarazioni, ma offre un metodo facile per la sua implementazione. Ogni condizione e il suo funzionamento vengono aggiunte nel caso di commutazione. Se una condizione è vera, l'operazione specificata verrà eseguita. Le variabili automatiche $ E $ switch può essere utilizzato nell'istruzione switch.

$ giorno = 3
Switch ($ giorno)

0 $ result = 'domenica'
1 $ result = 'lunedì'
2 $ result = 'martedì'
3 $ result = 'Mercoledì'
4 $ result = 'giovedì'
5 $ result = 'venerdì'
6 $ result = 'sabato'

$ risultato

Nell'esempio seguente, il valore di $ giorno corrisponde a uno dei valori numerici specificati nel caso di switch, quindi il giorno della settimana viene aggiunto al $ risultato variabile. In questo esempio, ti mostreremo un compito variabile, ma qualsiasi operazione può essere eseguita in questi blocchi di script.

Esegui questo "testfile1.PS1"Script e ti mostrerà il seguente output:

Dichiarazione di commutazione per le stringhe corrispondenti in PowerShell

Nell'esempio precedente, stavamo abbinando il valore numerico. Allo stesso modo, è possibile scrivere uno script per abbinare i valori della stringa usando l'istruzione switch.

$ item = 'ruolo'
Switch ($ Item)

Componente

'è un componente'

Ruolo

'è un ruolo'

Posizione

'è una posizione'

Switch Dichiarazione con caratteri jolly in PowerShell

I caratteri jolly specificano che la condizione è una stringa che useremo come jolly. Se la condizione abbinata non è una stringa nella custodia di commutazione, l'opzione jolly verrà ignorata. Puoi utilizzare i caratteri jolly nel tuo script usando il "-Carta jolly" opzione. "-Piace" E "-Carta jolly"Le opzioni funzionano sulla stessa logica.

$ Message = 'avvertimento, fuori dallo spazio su disco'
Switch -DildCard ($ Messaggio)

'Errore*'

Write -Error -Message $ Messaggio

'Avvertimento*'

Write -Warning -Message $ Messaggio

predefinito

Scrittura-informazione $ messaggio

Switch Dichiarazione con Regex in PowerShell

L'espressione regolare è un altro nome per regex. L'istruzione switch controlla il valore della condizione rispetto all'espressione regolare o "-Regex". Se la condizione abbinata non è una stringa, l'istruzione switch ignora anche l'opzione regex.

switch -regex ($ messaggio)

'^Errore'

Write -Error -Message $ Messaggio

'^Avvertenza'

Write -Warning -Message $ Messaggio

predefinito

Scrittura-informazione $ messaggio

Eseguire lo script e ti darà il seguente output:

Switch Dichiarazione per più condizioni corrispondenti in PowerShell

L'istruzione Switch può essere adattata a una varietà di situazioni. La stessa condizione può essere aggiunta molte volte e tutte saranno eseguite se ogni affermazione è vera.

switch ("Apple")

'Apple' 'minuscola minia di Apple'
'Apple' 'Upper Case Apple Match'
'Apple' 'Case misto Apple Match'

Switch Dichiarazione con "Continua" in PowerShell:

Come il "per loop" lavori, "Continua"Passa alla seguente condizione o lascia il caso di commutazione se non sono disponibili più condizioni. L'esempio precedente può essere riscritto usando "Continua"Dichiarazioni in modo che venga eseguita una sola affermazione.

switch ("Apple")

'mela'

"La minuscolo di Apple è abbinata"
Continua

'Mela'

"Case misto Apple è abbinata"
Continua

'MELA'

"La parola maiuscola è abbinata"
Continua

Switch Dichiarazione con "Break" in PowerShell:

L'interruttore è uscito da "rottura" dichiarazione. Per i valori singoli, funziona come "Continua". Durante l'elaborazione di un array, la differenza è visibile. Break interrompe l'elaborazione dello switch e gli consente di passare all'articolo.

$ Messaggi = @(
'Un aggiornamento sta scaricando'
"Ci sono errori nel file scaricato"
"Il sistema sta inviando e -mail:"
'Errore: fuori dal disco su disco'
'...'
)
Switch -DildCard ($ Messaggi)

'Errore*'

Write -Error -Message $ psitem
rottura

'*Errore*'

Write -Warning -Message $ psitem
Continua

'*Avvertimento*'

Write -Warning -Message $ psitem
Continua

predefinito

Write-output $ psitem

L'esecuzione dello script sopra ti mostrerà il seguente output:

Conclusione

L'istruzione switch è efficiente rispetto all'utilizzo di numerosi "Se"Condizioni perché riduce il tempo di esecuzione. Compiti complicati come la valutazione di caratteri jolly e regex possono essere eseguiti con l'istruzione switch. Questo articolo mostra il metodo di utilizzo delle istruzioni di switch per abbinare i valori numerici e stringa, più condizioni corrispondenti in PowerShell. Inoltre, l'uso del "carta jolly","Regex","Continua," E "rottura"Vengono anche dimostrate opzioni.