Quali sono i letterali booleani in PowerShell?
Quali sono i letterali booleani in PowerShell?
Risposte:
$true
e $false
.
Quelle sono costanti, comunque. Non ci sono letterali a livello linguistico per i booleani.
A seconda di dove ne hai bisogno, puoi anche usare tutto ciò che costringe a un valore booleano, se il tipo deve essere booleano, ad esempio nelle chiamate di metodo che richiedono booleano (e non hanno sovraccarico in conflitto) o istruzioni condizionali. La maggior parte degli oggetti non nulli sono veri, ad esempio. null
, stringhe vuote, array vuoti e il numero 0
sono falsi.
[bool]1
e [bool]0
funziona anche.
if ($s.Length) { ... }
va benissimo, per esempio.
Per aggiungere ulteriori informazioni alle risposte già esistenti : I letterali booleani $true
e $false
anche il lavoro come è quando viene utilizzato come parametri della riga di comando per PowerShell (PS) script. Per lo script PS di seguito che è memorizzato in un file denominato installmyapp.ps1
:
param (
[bool]$cleanuprequired
)
echo "Batch file starting execution."
Ora, se devo invocare questo file PS da una riga di comando PS, ecco come posso farlo:
installmyapp.ps1 -cleanuprequired $true
O
installmyapp.ps1 -cleanuprequired 1
Qui 1
e $true
sono equivalenti. Inoltre, 0
e $false
sono equivalenti.
Nota : non aspettatevi mai che il valore letterale di stringa true
possa essere convertito automaticamente in booleano. Ad esempio, se eseguo il comando seguente:
installmyapp.ps1 -cleanuprequired true
non riesce a eseguire lo script con l'errore seguente:
Impossibile elaborare la trasformazione dell'argomento sul parametro 'cleanuprequired'. Impossibile convertire il valore "System.String" per digitare "System.Boolean". I parametri booleani accettano solo valori e numeri booleani, come $ True, $ False, 1 o 0.