Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kurzbeschreibung
Beschreibt, wie boolesche Ausdrücke ausgewertet werden.
Lange Beschreibung
PowerShell kann jeden Typ implizit als booleschenbehandeln. Es ist wichtig, die Regeln zu verstehen, die PowerShell verwendet, um andere Typen in booleschen Werte zu konvertieren.
Konvertieren von skalaren Typen
Ein skalarer Typ ist eine Atommenge, die jeweils nur einen Wert enthalten kann. Die folgenden Typen werden als $falseausgewertet:
- Leere Zeichenfolgen wie
''oder"" - Nullwerte wie
$null - Beliebiger numerischer Typ mit dem Wert von
0
Beispiele
PS> $false -eq ''
True
PS> if ("") { $true } else { $false }
False
PS> if ($null) { $true } else { $false }
False
PS> if ([int]0) { $true } else { $false }
False
PS> if ([double]0.0) { $true } else { $false }
False
Die folgenden Typen werden als $trueausgewertet:
- Nicht leere Zeichenfolgen
- Instanzen eines anderen Nichtsammlungstyps
Beispiele
# a non-collection type
PS> [bool]@{value = 0}
True
# non-empty strings
PS> if ('hello') { $true } else { $false }
True
PS> [bool]'False'
True
Beachten Sie, dass sich dies von expliziten Zeichenfolgenanalyseunterscheidet:
PS> [bool]::Parse('false')
False
PS> [bool]::Parse('True')
True
PS> [bool]::Parse('Not True')
MethodInvocationException: Exception calling "Parse" with "1" argument(s):
"String 'Not True' was not recognized as a valid Boolean."
Konvertieren von Sammlungstypen
Arrays sind der am häufigsten verwendete Sammlungstyp in PowerShell. Diese Regeln gelten für alle sammlungsähnlichen Typen, die die IList Schnittstelle implementieren.
- Leere Sammlungen werden immer
$false - Der spezielle NULL-Wert, der angibt, dass keine Ausgabe eines Befehls vorhanden ist,
[System.Management.Automation.Internal.AutomationNull]::Valueist immer$false. - Auflistungen mit einem einzelnen Element werden in den booleschen Wert des 1 und einzigen Elements ausgewertet.
- Auflistungen mit mehr als einem Element sind immer
$true.
Beispiele
# Empty collections
PS> [bool]@()
False
PS> [bool](Get-ChildItem | Where-Object Name -eq 'Non-existent-File.txt')
False
# Single-element collections
PS> $a = @(0)
PS> [bool]$a
False
PS> $b = @(1)
PS> [bool]$b
True
# Multi-element collections
PS> $c = @(0,0)
PS> [bool]$c
True