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