about_Operator_Precedence
Kurze Beschreibung
Listet die PowerShell-Operatoren in der Rangfolge auf.
Lange Beschreibung
Mithilfe von PowerShell-Operatoren können Sie einfache, aber leistungsstarke Ausdrücke erstellen. In diesem Thema werden die Operatoren in der Rangfolge aufgeführt. Rangfolge ist die Reihenfolge, in der PowerShell die Operatoren auswertet, wenn mehrere Operatoren im selben Ausdruck angezeigt werden.
Wenn Operatoren gleichrangig sind, wertet PowerShell sie von links nach rechts aus, während sie im Ausdruck angezeigt werden. Die Ausnahmen sind die Zuordnungsoperatoren, die Umwandlungsoperatoren und die Negationsoperatoren (!
, -not
, ), -bnot
die von rechts nach links ausgewertet werden.
Sie können Anlagen wie Klammern verwenden, um die Standardrangfolge außer Kraft zu setzen und PowerShell zu erzwingen, um den eingeschlossenen Teil eines Ausdrucks vor einem nicht zusammenhängenden Teil auszuwerten.
In der folgenden Liste werden Operatoren in der Reihenfolge aufgeführt, in der sie ausgewertet werden. Operatoren in derselben Zeile oder in derselben Gruppe haben die gleiche Rangfolge.
In der Spalte "Operator" werden die Operatoren aufgelistet. In der Spalte "Referenz" wird das PowerShell-Hilfethema aufgeführt, in dem der Operator beschrieben wird. Geben Sie zum Anzeigen des Themas die Leiste get-help <topic-name>
ein.
OPERATOR | REFERENZ |
---|---|
$() @() () @{} |
about_Operators |
. ?. (Mitgliedzugriff) |
about_Operators |
:: (statisch) |
about_Operators |
[0] ?[0] (Indexoperator) |
about_Operators |
[int] (Umwandlungsoperatoren) |
about_Operators |
-split (unär) |
about_Split |
-join (unär) |
about_Join |
, (Kommaoperator) |
about_Operators |
++ -- |
about_Assignment_Operators |
! -not |
about_Logical_Operators |
.. (Bereichsoperator) |
about_Operators |
-f (Formatoperator) |
about_Operators |
- (unär/negativ) |
about_Arithmetic_Operators |
* / % |
about_Arithmetic_Operators |
+ - |
about_Arithmetic_Operators |
Die folgende Gruppe von Operatoren hat die gleiche Priorität. Die Groß-/Kleinschreibung und die explizite Groß-/Kleinschreibung haben die gleiche Priorität.
OPERATOR | REFERENZ |
---|---|
-split (binär) |
about_Split |
-join (binär) |
about_Join |
-is -isnot -as |
about_Type_Operators |
-eq -ne -gt -ge -lt -le |
about_Comparison_Operators |
-like -notlike |
about_Comparison_Operators |
-match -notmatch |
about_Comparison_Operators |
-in -notIn |
about_Comparison_Operators |
-contains -notContains |
about_Comparison_Operators |
-replace |
about_Comparison_Operators |
Die Liste wird hier mit den folgenden Operatoren in Rangfolge fortgesetzt:
OPERATOR | REFERENZ |
---|---|
-band -bnot -bor -bxor -shr -shl |
about_Arithmetic_Operators |
-and -or -xor |
about_Logical_Operators |
Die folgenden Elemente sind keine wahren Operatoren. Sie sind Teil der Befehlssyntax von PowerShell, nicht der Ausdruckssyntax. Zuordnung ist immer die letzte Aktion, die geschieht.
SYNTAX | REFERENZ |
---|---|
. (Punktquelle) |
about_Operators |
& (Anruf) |
about_Operators |
? <if-true> : <if-false> (Ternärer Operator) |
about_Operators |
?? (Null-Kohlenoperator) |
about_Operators |
| (Pipelineoperator) |
about_Operators |
> >> 2> 2>> 2>&1 |
about_Redirection |
&& || (Pipelinekettenoperatoren) |
about_Operators |
= += -= *= /= %= ??= |
about_Assignment_Operators |
Beispiele
Die folgenden beiden Befehle zeigen die arithmetischen Operatoren und die Auswirkung der Verwendung von Klammern, um PowerShell zu erzwingen, den eingeschlossenen Teil des Ausdrucks zuerst auszuwerten.
PS> 2 + 3 * 4
14
PS> (2 + 3) * 4
20
Im folgenden Beispiel werden die schreibgeschützten Textdateien aus dem lokalen Verzeichnis abgerufen und in der $read_only
Variablen gespeichert.
$read_only = Get-ChildItem *.txt | Where-Object {$_.isReadOnly}
Sie entspricht dem folgenden Beispiel.
$read_only = ( Get-ChildItem *.txt | Where-Object {$_.isReadOnly} )
Da der Pipelineoperator (|
) eine höhere Priorität hat als der Zuordnungsoperator (=
), werden die Dateien, die das Get-ChildItem
Cmdlet erhält, zum Filtern an das Where-Object
Cmdlet gesendet, bevor sie der $read_only
Variablen zugewiesen werden.
Im folgenden Beispiel wird veranschaulicht, dass der Indexoperator Vorrang vor dem Umwandlungsoperator hat.
Dieser Ausdruck erstellt ein Array von drei Zeichenfolgen. Anschließend wird der Indexoperator mit dem Wert 0 verwendet, um das erste Objekt im Array auszuwählen, bei dem es sich um die erste Zeichenfolge handelt. Schließlich wandelt es das ausgewählte Objekt als Zeichenfolge um. In diesem Fall hat die Umwandlung keine Auswirkung.
PS> [string]@('Windows','PowerShell','2.0')[0]
Windows
Dieser Ausdruck verwendet Klammern, um zu erzwingen, dass der Umwandlungsvorgang vor der Indexauswahl erfolgt. Daher wird das gesamte Array als (einzelne) Zeichenfolge umgeformt. Anschließend wählt der Indexoperator das erste Element im Zeichenfolgenarray aus, bei dem es sich um das erste Zeichen handelt.
PS> ([string]@('Windows','PowerShell','2.0'))[0]
W
Im folgenden Beispiel ist das Ergebnis des Ausdrucks FALSCH, da der -gt
Operator (größer als) eine höhere Priorität hat als der -and
logische AND-Operator.
PS> 2 -gt 4 -and 1
False
Sie entspricht dem folgenden Ausdruck.
PS> (2 -gt 4) -and 1
False
Wenn der Operator eine höhere Priorität hatte, wäre die Antwort WAHR.
PS> 2 -gt (4 -and 1)
True
In diesem Beispiel wird jedoch ein wichtiges Prinzip der Rangfolge des Betreibers veranschaulicht. Wenn ein Ausdruck für Personen schwierig zu interpretieren ist, verwenden Sie Klammern, um die Auswertungsreihenfolge zu erzwingen, auch wenn sie die Rangfolge des Standardoperators erzwingt. Die Klammern machen Ihre Absichten für Personen klar, die lesen und Standard Ihre Skripts enthalten.
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für