Como usar a declaração do switch no PowerShell

Como usar a declaração do switch no PowerShell
Lógica condicional é um conceito que é implementado em todas as linguagens de programação. É usado para verificar qualquer condição, se algo aconteceu ou não, e depois executar alguma operação com base nessa condição. Por exemplo, a lógica condicional pode avaliar o status do espaço livre em um script que gera um relatório de toda a utilização do espaço do disco, marcada como normal, aviso ou crítica com base em um limiar predeterminado.

Powershell Oferece comandos ou cmdlets para regular o fluxo de execução de seus scripts, como muitos outros idiomas, e o ““trocar”A declaração é um deles. Hoje, abordaremos o tópico em Como usar as declarações do Switch no PowerShell.

Qual é a declaração de troca em PowerShell?

Em Powershell, O comando ou instrução Switch é usado para lidar com numerosos “se”Declarações, ou em outras palavras, podemos dizer que substitui vários“if-else" declarações. If-else As declarações podem ser usadas para verificar uma única condição em um script ou função, mas as declarações de switch são utilizadas para avaliar muitos “se" declarações.

Em comparação com vários “seDeclarações, as declarações de switch são mais fáceis de implementar para codificar. Cada declaração tem alguma condição e, se algum deles for “verdadeiro,”Em seguida, será realizada alguma operação, que é fornecida no bloco de casos de interruptor. Aqui está o fluxograma do Declaração de interruptor:

Sintaxe da instrução Switch

O "Trocar”É a palavra -chave usada para adicionar uma instrução Switch em seu script. O "Valor”É o parâmetro utilizado para definir o“expressão" de qualquer "Valor”Que será usado em condições de teste. Em aparelhos encaracolados , Defina seu “Condições”Separadamente e dentro desses aparelhos encaracolados de condições especificam as operações que serão realizadas se a condição for testada “verdadeiro”.

trocar ()

Operação 1
Operação 2

Usando a instrução Switch no PowerShell

Para demonstrar Como usar o comando Switch no PowerShell, Vamos criar um script do PowerShell. Abre o teu Windows PowerShell Ise e crie um novo arquivo.

Neste script, a declaração do switch aceitará “3”Como condição e imprimirá o corpo da condição se algum dos casos corresponde ao“3”.

Switch (3)
1 "janeiro"
2 "fevereiro"
3 "March"

Salve o script como “testfile1.ps1”E execute -o.

Declaração de mudança para valores numéricos correspondentes no PowerShell

Utilize uma declaração de troca para verificar várias condições. A caixa de interruptor é semelhante a uma série de “se”Declarações, mas oferece um método fácil para sua implementação. Cada condição e sua operação são adicionadas no estojo. Se uma condição for verdadeira, a operação especificada será executada. As variáveis ​​automáticas $ e $ switch pode ser usado na instrução Switch.

$ dia = 3
Switch ($ dia)

0 $ resultado = 'domingo'
1 $ resultado = 'segunda -feira'
2 $ resultado = 'terça'
3 $ resultado = 'quarta -feira'
4 $ resultado = 'quinta -feira'
5 $ resultado = 'sexta'
6 $ resultado = 'Sábado'

$ resultado

No exemplo abaixo, o valor de $ dia corresponde a um dos valores numéricos especificados no caso do interruptor, então o dia da semana é adicionado ao $ resultado variável. Neste exemplo, mostraremos uma atribuição variável, mas qualquer operação pode ser executada nesses blocos de scripts.

Executar este “testfile1.ps1”Script, e mostrará a seguinte saída:

Declaração de troca para seqüências de caracteres correspondentes no PowerShell

No exemplo anterior, estávamos combinando o valor numérico. Da mesma maneira, você pode escrever um script para corresponder aos valores da string usando a instrução Switch.

$ item = 'função'
Switch ($ item)

Componente

'é um componente'

Papel

'é um papel'

Localização

'é um local'

Declaração de troca com curingas em PowerShell

Wildcards especificam que a condição é uma corda que usaremos como curinga. Se a condição correspondente não for uma string no caso do interruptor, a opção curinga será ignorada. Você pode utilizar curingas em seu script usando o “-Curinga”Opção. ““-como" e "-Curinga”As opções funcionam na mesma lógica.

$ Message = 'Aviso, fora do espaço do disco'
Switch -wildcard ($ mensagem)

'Erro*'

Write -Error -Message $ Mensagem

'Aviso*'

Write -warning -Message $ mensagem

padrão

Mensagem de informação de gravação $

Declaração de mudança com regex em PowerShell

Expressão regular é outro nome para regex. Declaração de interruptor verifica o valor da condição contra a expressão regular ou o “-Regex”. Se a condição correspondente não for uma string, a instrução Switch também ignora a opção Regex.

Switch -Regex ($ Mensagem)

'^Erro'

Write -Error -Message $ Mensagem

'^Aviso'

Write -warning -Message $ mensagem

padrão

Mensagem de informação de gravação $

Execute o script e ele fornecerá a seguinte saída:

Declaração de mudança para várias condições correspondentes no PowerShell

A instrução Switch pode ser adaptada a uma variedade de situações. A mesma condição pode ser adicionada muitas vezes, e todas elas serão executadas se cada declaração for verdadeira.

Switch ('Apple')

'Apple' 'minúscula caixa da maçã'
'Apple' 'Upper Case Apple Match'
'Apple' 'case mixed Apple Match'

Declaração de troca com "Continue" em PowerShell:

Enquanto o "para loop" funciona, "continuar”Passa para a seguinte condição ou sai da caixa de interruptor se não houver mais condições disponíveis. O exemplo anterior pode ser reescrito usando “continuar”Declarações para que apenas uma declaração seja executada.

Switch ('Apple')

'maçã'

'A maçã inferior é combinada'
continuar

'Maçã'

'Caso misto Apple é combinada'
continuar

'MAÇÃ'

'Palavra da caixa superior é combinada'
continuar

Declaração de mudança com "Break" em PowerShell:

O interruptor saiu com um “quebrar" declaração. Para valores únicos, funciona da mesma forma que “continuar““. Ao processar uma matriz, a diferença é visível. O intervalo interrompe o processamento do interruptor e permite que ele passasse para o item.

$ Mensagens = @(
'Uma atualização está baixando'
'Existem erros no arquivo baixado'
'O sistema está enviando email:'
'Erro: fora do espaço do disco'
'…'
)
Switch -wildcard ($ mensagens)

'Erro*'

Write -Error -Message $ psitem
quebrar

'*Erro*'

Write -warning -Message $ psitem
continuar

'*Aviso*'

Write -warning -Message $ psitem
continuar

padrão

Write-Output $ psitem

A execução do script acima mostrará a seguinte saída:

Conclusão

A declaração de switch é eficiente em comparação com o uso de numerosos “se“Condições porque reduz o tempo de execução. Tarefas complicadas, como avaliação de curingas e regex, podem ser executadas com a instrução Switch. Este artigo mostra o método de usar declarações de switch para combinar valores numéricos e strings, várias condições que correspondem ao PowerShell. Além disso, o uso do “curinga","regex","continuar," e "quebrar”As opções também são demonstradas.