HOWTO · PowerShell

Valores Booleanos no PowerShell

Este artigo explicará o que são valores Booleanos e como podemos usá-los dentro do ambiente Windows PowerShell.

Nesta página

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:

valores booleanos no powershell - saída 1

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:

valores booleanos no powershell - saída 2

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:

valores booleanos no powershell - saída 3

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:

valores booleanos no powershell - saída 4

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:

valores booleanos no powershell - saída 5

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.