Jakie są literały logiczne w programie PowerShell?
Jakie są literały logiczne w programie PowerShell?
Odpowiedzi:
$true
i $false
.
To są jednak stałe. Nie ma literałów na poziomie języka dla wartości logicznych.
W zależności od tego, gdzie ich potrzebujesz, możesz również użyć wszystkiego, co wymusza na wartości logicznej, jeśli typ ma być logiczny, np. W wywołaniach metod, które wymagają wartości logicznej (i nie mają sprzecznego przeciążenia), lub instrukcji warunkowych. Na przykład większość obiektów niezerowych jest prawdą. null
, puste łańcuchy, puste tablice i liczba 0
są fałszywe.
[bool]1
i [bool]0
też działa.
if ($s.Length) { ... }
jest na przykład w porządku.
Aby dodać więcej informacji do już istniejących odpowiedzi : Literały logiczne, $true
a $false
także działają tak, jak są, gdy są używane jako parametry wiersza polecenia dla skryptów PowerShell (PS). Dla poniższego skryptu PS, który jest przechowywany w pliku o nazwie installmyapp.ps1
:
param (
[bool]$cleanuprequired
)
echo "Batch file starting execution."
Teraz, jeśli mam wywołać ten plik PS z wiersza poleceń PS, mogę to zrobić w następujący sposób:
installmyapp.ps1 -cleanuprequired $true
LUB
installmyapp.ps1 -cleanuprequired 1
Tutaj 1
i $true
są równoważne. Również 0
i $false
są równoważne.
Uwaga : Nigdy nie spodziewaj się, że literał ciągu true
może zostać automatycznie przekonwertowany na wartość logiczną. Na przykład, jeśli uruchomię poniższe polecenie:
installmyapp.ps1 -cleanuprequired true
nie wykonuje skryptu z następującym błędem:
Nie można przetworzyć transformacji argumentów w parametrze „cleanuprequired”. Nie można przekonwertować wartości „System.String” na typ „System.Boolean”. Parametry logiczne akceptują tylko wartości i liczby logiczne, takie jak $ True, $ False, 1 lub 0.