Quais são os literais booleanos no PowerShell?
Quais são os literais booleanos no PowerShell?
Respostas:
$true
e $false
.
Essas são constantes, no entanto. Não há literais no nível do idioma para booleanos.
Dependendo de onde você precisar deles, você também pode usar qualquer coisa que coagir a um valor booleano, se o tipo precisar ser booleano, por exemplo, em chamadas de método que exijam booleano (e sem sobrecarga conflitante) ou declarações condicionais. A maioria dos objetos não nulos é verdadeira, por exemplo. null
, cadeias vazias, matrizes vazias e o número 0
são falsos.
[bool]1
e [bool]0
também funciona.
if ($s.Length) { ... }
está perfeitamente bem, por exemplo.
Para adicionar mais informações às respostas já existentes : Os literais booleanos $true
e $false
também funcionam como quando são usados como parâmetros de linha de comando para scripts do PowerShell (PS). Para o script PS abaixo, que é armazenado em um arquivo chamado installmyapp.ps1
:
param (
[bool]$cleanuprequired
)
echo "Batch file starting execution."
Agora, se eu tiver que invocar esse arquivo PS a partir de uma linha de comando PS, é assim que posso fazê-lo:
installmyapp.ps1 -cleanuprequired $true
OU
installmyapp.ps1 -cleanuprequired 1
Aqui 1
e $true
são equivalentes. Além disso, 0
e $false
são equivalentes.
Nota : Nunca espere que o literal da string true
possa ser convertido automaticamente em booleano. Por exemplo, se eu executar o comando abaixo:
installmyapp.ps1 -cleanuprequired true
falha ao executar o script com o erro abaixo:
Não é possível processar a transformação do argumento no parâmetro 'cleanuprequired'. Não é possível converter o valor "System.String" para o tipo "System.Boolean". Os parâmetros booleanos aceitam apenas valores e números booleanos, como $ True, $ False, 1 ou 0.