Quels sont les littéraux booléens dans PowerShell?
Quels sont les littéraux booléens dans PowerShell?
Réponses:
$trueet $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 0sont faux.
[bool]1et [bool]0fonctionne également.
if ($s.Length) { ... }est parfaitement bien, par exemple.
Pour ajouter plus d' informations aux réponses déjà existantes : Les booléennes $trueet $falseaussi 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 1et $truesont équivalents. Aussi, 0et $falsesont équivalents.
Remarque : ne vous attendez jamais à ce que le littéral de chaîne truesoit 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.