Welcome to Our Website

Adam the Automator

Scripts can make decisions. Como? Usando um conceito chamado lógica condicional. O PowerShell if statement e o IF / else constructs são as formas comuns de definir as condições.

quando escreve programas PowerShell, fá-lo com uma tarefa ou tarefas específicas em mente. Mas, uma operação pode ter mais de uma ação possível baseada em uma ou mais condições. Esta situação é onde a construção PowerShell If-Else entra.,

neste artigo, você vai aprender o que a construção PowerShell If-Else é, entender a sua sintaxe e como ela funciona. Você também vai aprender com os exemplos algumas das diferentes maneiras que você pode usar PowerShell If-Else para adicionar tratamento lógico condicional em seus scripts.

tabela de conteúdos

compreender a PowerShell If-Else Syntax

a PowerShell if-else construct avalia uma ou mais expressões condicionais. Abaixo você verá a sintaxe da declaração If. Este estilo às vezes é chamado de controle de fluxo.,

if (<test1>) {<statement list 1>}

como pode ver pela sintaxe acima, cada teste é incluído num parêntesis (). Os testes podem fazer uso de diferentes operadores, tais como operadores de comparação e operadores lógicos,

As listas de declarações contêm o código destinado a ser executado se o resultado do teste for verdadeiro.

então, há três possíveis afirmações em um grupo de declaração If. Estas são as declarações de “se”, “ELSEIF” e “ELSE”.,

  • a declaraçãoif contém o primeiro teste a avaliar, seguido da primeira lista de declarações dentro dos parêntesis curly{}.The PowerShell if statement is the only statement required to be present.
  • a declaraçãoelseif é onde você adiciona as condições. Você pode adicionar várias declarações ElseIf quando você várias condições. PowerShell irá avaliar cada uma destas condições sequencialmente.
  • The else statement does not accept any condition., A lista de declarações nesta declaração contém o código a executar se todas as condições anteriores testadas são falsas.

compreendendo o fluxo lógico de PowerShell If-Else

para compreender melhor como a PowerShell If-Else funciona, é necessário familiarizar-se com o seu fluxo lógico. O diagrama abaixo ilustra o fluxo básico da PowerShell If-Else.,

PowerShell If-Else Lógica de Fluxo

Quando a instrução if é executado, o PowerShell é executado através de cada condição de avaliar se o código retorna true ou false. Um resumo do comportamento é abaixo:

  • PowerShell avalia a condição no teste 1.
  • Se o resultado do teste 1 retornar verdadeiro, o código dentro da lista de instruções If irá correr, então PowerShell sai da instrução If.,
  • Se o resultado do teste 1 retornar falso, PowerShell continua a avaliar a condição (teste n) na próxima declaração ElseIf.
  • Se o resultado do teste n devolve falso, o PowerShell continua a avaliar a condição (teste n) Na próxima declaração do ElseIf, se existir outra declaração do ElseIf-ou-
  • Se o resultado do teste n devolve falso, o código na outra declaração é executado. Então, o PowerShell irá sair da instrução If-or –
  • Se o resultado do teste n retorna verdadeiro, o código na instrução ElseIf corre. Então, o PowerShell vai sair da declaração do fi.,

usando a instrução PowerShell If-Else

as secções seguintes são vários exemplos de como usar a instrução PowerShell If-Else ao escrever scripts. As técnicas que você vai aprender podem guiá-lo no uso da declaração If caso você encontrar uma situação real que requer o seu uso.

condição de “If-Else” única

começando com a mais básica é a declaração de ” If ” única. Você deve usar uma única declaração if quando há apenas uma condição para testar.

o exemplo abaixo testa se o valor da variável

é superior a 10., Se o resultado for verdadeiro, então o resultado dizendo "$num is greater than 10" será exibido na tela. Se o resultado é falso, PowerShell não faz nada porque há apenas uma condição para testar.

$num = 11if ($num -gt 10) { "$num is greater than 10"}

colar o código acima em PowerShell dar-lhe-á o resultado mostrado abaixo.,

Única Condição de Se Exemplo

Agora, se você deseja adicionar um padrão de “reversão” de ação, ao invés de apenas deixá-PowerShell não fazer nada quando o resultado do teste for falso, você pode adicionar a instrução Else.

no exemplo abaixo, o código na instrução Else será executado se o valor da variável

não for superior a 10.

$num = 9if ($num -gt 10){ "$num is greater than 10"}else{ "$num is NOT greater than 10"}

correr o código modificado em PowerShell dá-lhe o resultado mostrado abaixo.,

Única condição If

Começando com o PowerShell 7.0, uma nova sintaxe para a instrução Se tiver sido introduzida através de um operador ternário. Single If statements can make good use of this new syntax.

Usando o mesmo exemplo acima, é assim que o código se pareceria com o operador ternário.,

$num = 11$num -gt 10 ? "$num is greater than 10" : "$num is NOT greater than 10"
Se a sintaxe de declaração usando o operador ternário

Vários If-Else Condições com ElseIf

Quando há várias condições para avaliar, você precisa adicionar um ou mais instruções ElseIf. Cada instrução ElseIf contém a expressão de teste e seu próprio código para executar.,

O script abaixo, quando executado, irá continuar a pedir um nome de fruta até o CTRL+C pressionamento de tecla é emitido, ou o usuário insere a letra “X“.

então, a instrução If irá passar por cada condição em sequência até encontrar uma correspondência. Se a entrada não correspondesse a nenhuma das condições, o código dentro da outra instrução seria executado.

abaixo está a demonstração de como o script acima se comporta ao executar em PowerShell.,

Várias as condições If-Else

Relatório de Espaço Livre em Disco de Estado

espaço Livre em disco de relatórios é uma tarefa que é comum para administradores de sistema. A maneira usual de relatar a informação do espaço de discos fixos em uma máquina do Windows gira em torno do código abaixo.

Get-CimInstance -ClassName CIM_LogicalDisk | Where-Object {$_.DriveType -eq 3}

a informação de que o código acima irá retornar se pareceria com a mostrada na próxima imagem.,

Simples informações de espaço em disco relatório

Como você pode ver, a saída acima mostra a letra da unidade e o espaço livre de valores, juntamente com outras propriedades. Enquanto a saída acima é boa, não é intuitiva. A forma como a informação é apresentada não indica se o espaço em disco está em um estado crítico ou de aviso ou normal.,

Usando o PowerShell Se a Instrução para Melhorar o Código

Usando o PowerShell If-Else, uma forma mais intuitiva de saída pode ser conseguido através da adição de condições para verificar se o espaço livre está acima ou abaixo de certos limites. E estes limiares irão definir o estado do espaço em disco livre.

o programa de exemplo abaixo executa o seguinte:

  • usando o valor da variável $Critical, define o limiar para o qual a percentagem de espaço livre será marcada como crítica.,
  • usando o valor da variável $Warning, defina o limiar para o qual a percentagem de espaço livre será marcada como aviso.
  • Obtenha toda a informação do disco fixo da máquina local
  • Loop através de toda a informação do disco para determinar o espaço livre e marcar o seu estado.
    • Se a percentagem de espaço livre for superior ao valor da variável $Warning, o estado do espaço em disco é marcado como normal.,
    • Se a percentagem de espaço livre for superior ao valor da variável $Critical, o estado do espaço em disco é marcado como aviso.
    • Se a percentagem de espaço livre for menor ou igual ao valor da variável $Critical, o estado do espaço em disco é marcado como crítico.
  • Compor o objeto de propriedades de 'Drive Letter' 'Drive Name' 'Total Space (GB)' 'Free Space (GB)' 'Free Space (%)' e 'Status'.,
  • Devolve o relatório final

copia o código abaixo e grava o programa com o nome de ficheiro Get-DiskSpace.ps1. Não se esqueça de alterar os valores das variáveis

e $Warning se quiser testar com limiares diferentes.

Uma vez que o script é salvo, testá-lo chamando o seu nome em PowerShell. Abaixo está a demonstração de exemplo de como este script funciona.,

Espaço Livre em Disco Saída do Comando Status

Como você pode ver a partir da saída, o status de cada disco é determinado pelo espaço livre em disco percentual, que foi o resultado de várias condições com PowerShell If-Else.

múltiplo e aninhado If-Else

digamos que você tem uma declaração if-else com uma condição definida no id

bloco., Quando a instrução if-else é executada, o bloco else é invocado se o código dentro do id

block devolve false.

dentro do bloco else, você precisa realizar outro teste condicional. Como resultado, você precisa de outra declaração If-Else. Este cenário é chamado de “se-Else” aninhado. A declaração se-Else aninhada é comumente usada se o If-Else interno depende do resultado da operação no If-Else externo.

usando múltiplas e aninhadas afirmações If-Else pode ser bastante confuso., O ponto chave é lembrar a colocação do andaime e certificar-se de que você indenta o seu código. Indentar o seu código irá ajudá-lo a reconhecer e separar facilmente as suas declarações If-Else.

exemplo de múltiplas / aninhadas declarações If-Else

o script de exemplo abaixo mostra como múltiplo e aninhado If-Else pode ser dependente do resultado um do outro. A lógica do código abaixo é a seguinte.

  • If the$SendEmail is$false, the script will do nothing and exit.,
  • Se $SendEmail é $true, o $From e $To variáveis não deve ser deixado em branco ou nulo. Caso contrário, o $abortFlag será definido como 1.
  • Se $SendEmail é $true e o $CCEnabled é $true, o $CC variável não deve ser deixado em branco ou nulo. Caso contrário, o $abortFlag será definido como 1.,
  • Se $SendEmail é $true e o $BCCEnabled é $true, o $BCC variável não deve ser deixado em branco ou nulo. Caso contrário, o $abortFlag será definido como 1.
  • Se o valor$abortFlag for 1, o programa irá sair neste ponto e não irá continuar.
  • If the $abortFlag value is 0, the script continues until the end.

Copie o código abaixo e guarde-o como Send-MyMail.ps1. Não altere quaisquer valores ainda.,

Depois de ter gravado o ficheiro, execute-o em PowerShell como mostrado abaixo. A demonstração abaixo mostra o resultado do script quando os valores das variáveis permanecem inalterados.

Aninhados o If-Else exemplo

em seguida, edite o script e atualização de todas as variáveis corretamente como este trecho de código abaixo.

Depois de editar as variáveis, salve o script e execute-o novamente. Ele deve mostrar-lhe o mesmo resultado, como visto abaixo.,

Outro aninhados o If-else exemplo

Agora, modificar as variáveis e experimentar combinações diferentes para testar como o aninhados o If-Else serão afetados. Modificar e testar por si só iria ajudá-lo a entender mais a lógica.

resumo

neste artigo, você aprendeu sobre a construção lógica condicional-a construção PowerShell If-Else., Usando a declaração If-Else permite que os scripters formulem lógica condicional e direcionem as ações de seus scripts com base em testes de resultados.

com os exemplos mostrados neste artigo, você deve ter aprendido maneiras e técnicas sobre como usar a declaração If-Else ao criar um código de decisão. Se-Else pode ser simples usando uma única condição e fica mais complexo, enquanto você cavar mais fundo nas declarações se-Else aninhadas.o que acha da declaração If-Else? Isso é algo que você acha que estaria usando mais e mais depois de ler este artigo?, Que outros propósitos você pode pensar de onde você pode aplicar o conhecimento que adquiriu aqui?

Leitura Adicional

  • sobre se
  • De Volta ao básico: o ciclo de foreach PowerShell

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *