Valores Booleanos no PowerShell
Nos scripts do Windows PowerShell, frequentemente usamos lógica baseada em algo verdadeiro.
Mas pode haver situações em que você precisa lidar com o inverso. Ou seja, uma situação em que você precisa saber quando algo não atende a alguns critérios.
Portanto, enquanto escreve e depura, o PowerShell adota uma abordagem mais positiva. É essencial entender a negação.
Neste artigo, exploraremos o uso de valores booleanos no PowerShell por meio de comandos e operadores nativos, demonstrando sua versatilidade e importância no desenvolvimento de scripts.
Definição de Booleano no Windows PowerShell
Ao decidir se algo é ou não no PowerShell, falamos sobre valores booleanos representados como $True ou $False.
A sintaxe básica mostrada abaixo explica como o Booleano funciona. Os valores do tipo Booleano são formas de saída que retornam True ou False.
Ainda assim, a sintaxe usa operadores de comparação e condicionais para comparar os dois ou múltiplos valores.
Código de Exemplo:
# Using -eq operator
"yes" -eq "yes"
# Using -ne operator
"no" -ne "no"
No código fornecido, utilizamos o operador -eq para verificar se a string "yes" corresponde a "yes". Dado que ambas as strings são idênticas, essa comparação resulta em $true.
Por outro lado, empregando o operador -ne, examinamos se a string "no" difere de "no". No entanto, como ambas as strings são idênticas, a comparação retorna $false.
Saída:

Ao avaliar a expressão booleana, ela compara o lado esquerdo do valor com o lado direito do valor. Se o valor do lado esquerdo é igual ao valor do lado direito, então é avaliado como True; caso contrário, False, como mostrado acima.
Enquanto -eq e -ne são valiosos para comparar valores individuais, podemos alcançar avaliações mais complexas usando os operadores and e or.
No PowerShell, os operadores and e or são usados para combinar múltiplas condições e avaliá-las juntas.
Código de Exemplo:
$condition1 = $true
$condition2 = $false
# Using 'and' operator
$result1 = $condition1 -and $condition2
# Using 'or' operator
$result2 = $condition1 -or $condition2
Write-Host "Result of condition1 AND condition2: $result1"
Write-Host "Result of condition1 OR condition2: $result2"
No código fornecido, primeiro definimos $condition1 como $true e $condition2 como $false. Em seguida, usamos o operador and para combinar essas condições.
Uma vez que $condition1 é verdadeiro e $condition2 é falso, o resultado de $result1 será $false. Em seguida, usamos o operador or para combinar as mesmas condições.
Dado que pelo menos uma condição ($condition1) é verdadeira, o resultado de $result2 será $true.
Saída:

Existem várias maneiras de outputar um valor booleano, e discutiremos elas na próxima seção do artigo.
Usando Operadores de Comparação
Podemos usar múltiplos operadores condicionais para comparar valores e outputar um resultado booleano como nosso primeiro exemplo.
Código de Exemplo:
10 -eq 10 # equal
10 -gt 20 # greater than
10 -lt 20 # less than
10 -le 11 # less than or equal
10 -ge 8 # greater than or equal
Neste script, utilizamos diferentes operadores de comparação para avaliar a relação entre valores distintos. O operador -eq avalia se 10 é igual a 10, o que é verdadeiro e, portanto, resulta em $true.
No entanto, o operador -gt examina se 10 é maior que 20, o que é falso e, portanto, resulta em false. Da mesma forma, os operadores -lt, -le e -ge são empregados para examinar se 10 é menor que, menor ou igual a, e maior ou igual a certos valores, respectivamente, fornecendo comparações esclarecedoras entre os valores.
Saída:

Usando Comandos do PowerShell
Alguns comandos nativos do Windows PowerShell retornam valores booleanos. Um exemplo disso é o cmdlet Test-Path.
O cmdlet Test-Path verifica se o caminho do diretório existe dentro da nossa máquina local.
Código de Exemplo:
# Check if the directory C:\Windows\temp exists
$exists = Test-Path -Path "C:\Windows\temp"
# Print the result
Write-Host "Directory exists: $exists"
Neste script, usamos o comando Test-Path para verificar se o diretório C:\Windows\temp existe no sistema. O resultado do comando Test-Path é armazenado na variável $exists, que será $true se o diretório existir e $false se não existir.
Saída:

Alguns comandos nativos exigirão um parâmetro para retornar um valor booleano. Por exemplo, o comando Test-Connection usa o parâmetro -Quiet para retornar um valor booleano.
Código de Exemplo:
# Check if we can reach www.google.com with 2 echo request packets and suppress output
$reachable = Test-Connection -ComputerName "www.google.com" -Count 2 -Quiet
# Print the result
Write-Host "Host is reachable: $reachable"
Neste script, utilizamos o comando Test-Connection para enviar dois pacotes de requisição de eco para www.google.com e determinar se o host é acessível. Ao especificar o parâmetro -Quiet, suprimimos toda a saída, exceto pelo resultado final, que é armazenado na variável $reachable.
Se www.google.com for acessível, o valor de $reachable será true; caso contrário, será false.
Saída:

Conclusão
Os valores booleanos são fundamentais na scripting do PowerShell, permitindo a avaliação de condições e o controle do fluxo do programa. Enquanto $True e $False são representações booleanas nativas no PowerShell, alternativas como 1 e 0 também podem ser empregadas em certos cenários, particularmente ao interagir com sistemas externos ou APIs.
O uso de operadores de comparação como -eq e -ne facilita comparações diretas entre valores, retornando resultados booleanos. Além disso, comandos do PowerShell como Test-Path e Test-Connection expandem ainda mais a utilidade dos valores booleanos, fornecendo métodos para avaliar a existência de diretórios ou a acessibilidade de hosts.
Entender e utilizar eficazmente os valores booleanos no PowerShell melhora a funcionalidade e a eficiência dos scripts, capacitando os usuários a criar soluções de automação robustas e confiáveis.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn