Quels sont les littéraux booléens dans PowerShell?
Quels sont les littéraux booléens dans PowerShell?
Réponses:
$true
et $false
.
Ce sont des constantes, cependant. Il n'y a pas de littéraux de niveau langue pour les booléens.
Selon l'endroit où vous en avez besoin, vous pouvez également utiliser tout ce qui contraint à une valeur booléenne, si le type doit être booléen, par exemple dans les appels de méthode qui nécessitent un booléen (et n'ont pas de surcharge conflictuelle), ou des instructions conditionnelles. La plupart des objets non nuls sont vrais, par exemple. null
, les chaînes vides, les tableaux vides et le nombre 0
sont faux.
[bool]1
et [bool]0
fonctionne également.
if ($s.Length) { ... }
est parfaitement bien, par exemple.
Pour ajouter plus d' informations aux réponses déjà existantes : Les booléennes $true
et $false
aussi travail est quand il est utilisé en tant que paramètres de ligne de commande pour les scripts PowerShell (PS). Pour le script PS ci-dessous qui est stocké dans un fichier nommé installmyapp.ps1
:
param (
[bool]$cleanuprequired
)
echo "Batch file starting execution."
Maintenant, si je dois appeler ce fichier PS à partir d'une ligne de commande PS, voici comment je peux le faire:
installmyapp.ps1 -cleanuprequired $true
OU
installmyapp.ps1 -cleanuprequired 1
Ici 1
et $true
sont équivalents. Aussi, 0
et $false
sont équivalents.
Remarque : ne vous attendez jamais à ce que le littéral de chaîne true
soit automatiquement converti en booléen. Par exemple, si j'exécute la commande ci-dessous:
installmyapp.ps1 -cleanuprequired true
il ne parvient pas à exécuter le script avec l'erreur ci-dessous:
Impossible de traiter la transformation d'argument sur le paramètre «cleanuprequired». Impossible de convertir la valeur "System.String" en type "System.Boolean". Les paramètres booléens n'acceptent que les valeurs et les nombres booléens, tels que $ True, $ False, 1 ou 0.