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 0são falsos.
[bool]1e [bool]0também funciona.
if ($s.Length) { ... }está perfeitamente bem, por exemplo.
Para adicionar mais informações às respostas já existentes : Os literais booleanos $truee $falsetambé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 1e $truesão equivalentes. Além disso, 0e $false são equivalentes.
Nota : Nunca espere que o literal da string truepossa 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.