¿Cuáles son los literales booleanos en PowerShell?
¿Cuáles son los literales booleanos en PowerShell?
Respuestas:
$true
y $false
.
Sin embargo, esas son constantes. No hay literales a nivel de idioma para booleanos.
Dependiendo de dónde los necesite, también puede usar cualquier cosa que coaccione a un valor booleano, si el tipo tiene que ser booleano, por ejemplo, en llamadas a métodos que requieren booleano (y no tienen sobrecarga conflictiva) o declaraciones condicionales. La mayoría de los objetos no nulos son verdaderos, por ejemplo. null
, cadenas vacías, matrices vacías y el número 0
son falsos.
[bool]1
Y [bool]0
también funciona.
if ($s.Length) { ... }
está perfectamente bien, por ejemplo.
Para agregar más información a las respuestas ya existentes : Los literales booleanos $true
y $false
también funcionan como están cuando se usan como parámetros de línea de comandos para los scripts de PowerShell (PS). Para el siguiente script PS que se almacena en un archivo llamado installmyapp.ps1
:
param (
[bool]$cleanuprequired
)
echo "Batch file starting execution."
Ahora, si tengo que invocar este archivo PS desde una línea de comando PS, así es como puedo hacerlo:
installmyapp.ps1 -cleanuprequired $true
O
installmyapp.ps1 -cleanuprequired 1
Aquí 1
y $true
son equivalentes. Además, 0
y $false
son equivalentes.
Nota : Nunca espere que el literal de cadena true
pueda convertirse automáticamente a booleano. Por ejemplo, si ejecuto el siguiente comando:
installmyapp.ps1 -cleanuprequired true
no puede ejecutar el script con el siguiente error:
No se puede procesar la transformación de argumentos en el parámetro 'cleanuprequired'. No se puede convertir el valor "System.String" para escribir "System.Boolean". Los parámetros booleanos aceptan solo valores y números booleanos, como $ True, $ False, 1 o 0.