Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Rövid leírás
A PowerShell-operátorok sorrendben való felsorolása.
Hosszú leírás
A PowerShell-operátorokkal egyszerű, de hatékony kifejezéseket hozhat létre. Ez a témakör az operátorokat elsőbbségi sorrendben sorolja fel. Az elsőbbségi sorrend az a sorrend, amelyben a PowerShell kiértékeli az operátorokat, ha több operátor is megjelenik ugyanabban a kifejezésben.
Ha az operátorok azonos elsőbbséggel rendelkeznek, a PowerShell balról jobbra értékeli ki őket, ahogy megjelennek a kifejezésben. Kivételt képeznek a hozzárendelési operátorok, a típuskonverziós operátorok és a negációs operátorok (!, -not, -bnot), amelyek kiértékelése jobbról balra történik.
A zárójelek használatával felülírhatja a precedencia sorrendjét, és kényszerítheti a PowerShellt, hogy először a zárójelbe tett részét értékelje ki egy kifejezésnek, mielőtt a zárójelen kívüli résszel folytatná.
Az alábbi listában az operátorok a kiértékelés sorrendjében jelennek meg. Az ugyanazon a sorban vagy ugyanabban a csoportban lévő operátorok elsőbbséget élveznek.
Az Operátor oszlop felsorolja az operátorokat. A Referencia oszlop felsorolja azt a PowerShell-súgótémakört, amelyben az operátor leírása szerepel. A témakör interaktív megjelenítéséhez használja a következőt Get-Help -Name <topic-name>: .
| OPERÁTOR | HIVATKOZÁS |
|---|---|
$() @() () @{} |
a_Operátorokról |
. ?. (taghozzáférés) |
a_Operátorokról |
:: (statikus) |
a_Operátorokról |
[0] ?[0] (index operátor) |
a_Operátorokról |
[int] (típuskonverziós operátorok) |
a_Operátorokról |
-split (egyváltozós) |
about_Split |
-join (egyváltozós) |
about_Join |
, (vessző operátor) |
a_Operátorokról |
++ -- |
about_Assignment_Operators |
! -not |
az_Logicai_Operátorok |
.. (tartomány operátora) |
a_Operátorokról |
-f (formátum operátor) |
a_Operátorokról |
- (unáris/negatív) |
about_Arithmetic_Operators |
* / % |
about_Arithmetic_Operators |
+ - |
about_Arithmetic_Operators |
Az operátorok alábbi csoportja egyenlő elsőbbséget élvez. Azokra az esetekre, amikor a kis- és nagybetűk megkülönböztetése számít, valamint amikor nem, azonos precedencia vonatkozik.
| OPERÁTOR | HIVATKOZÁS |
|---|---|
-split (bináris) |
about_Split |
-join (bináris) |
about_Join |
-is -isnot -as |
típus_Operátorokról |
-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 |
A lista itt folytatódik a következő operátorokkal, sorrendben:
| OPERÁTOR | HIVATKOZÁS |
|---|---|
-band -bnot -bor -bxor -shr -shl |
about_Arithmetic_Operators |
-and -or -xor |
az_Logicai_Operátorok |
A következő elemek nem valódi operátorok. Ezek a PowerShell parancsszintaxisának részei, nem pedig a kifejezés szintaxisának. A hozzárendelés mindig az utolsó művelet, amely történik.
| SZINTAXIS | HIVATKOZÁS |
|---|---|
. (pont-forrás) |
a_Operátorokról |
& (hívás) |
a_Operátorokról |
? <if-true> : <if-false> (ternáris operátor) |
a_Operátorokról |
?? (null-szénerősítési operátor) |
a_Operátorokról |
| (csővezeték operátor) |
a_Operátorokról |
> >> 2> 2>> 2>&1 |
about_Redirection |
&& || (folyamatláncoperátorok) |
a_Operátorokról |
= += -= *= /= %= ??= |
about_Assignment_Operators |
Példák
Az alábbi két példa bemutatja az aritmetikai operátorokat, valamint azt, hogy milyen hatással van arra, hogy zárójelek használatával kényszerítse a PowerShellt a kifejezés zárt részének kiértékelésére.
PS> 2 + 3 * 4
14
PS> (2 + 3) * 4
20
Az alábbi példa lekéri a csak olvasható szövegfájlokat a helyi könyvtárból, és menti őket a $readOnly változóba.
$readOnly = Get-ChildItem -Path *.txt | Where-Object { $_.IsReadOnly }
Ez egyenértékű az alábbi példával.
$readOnly = (Get-ChildItem -Path *.txt | Where-Object { $_.IsReadOnly })
Mivel a folyamatkezelő (|) nagyobb elsőbbséget élvez, mint a hozzárendelési operátor (=), a rendszer a Get-ChildItem parancsmag által lekért fájlokat a Where-Object parancsmagba küldi szűrés céljából, mielőtt hozzá lettek rendelve a $readOnly változóhoz.
Az alábbi példa azt mutatja be, hogy az index operátor elsőbbséget élvez az öntött operátorral szemben.
Ez a kifejezés három karakterláncból álló tömböt hoz létre. Ezután az index operátort használja egy értékkel a tömb első objektumának 0 kiválasztásához, amely az első sztring. Végül sztringgé alakítja a kijelölt objektumot. Ebben az esetben a szereposztásnak nincs hatása.
PS> [string]@('Windows','PowerShell','2.0')[0]
Windows
Ez a kifejezés zárójelekkel kényszeríti a leadási műveletet az index kiválasztása előtt. Ennek eredményeképpen a teljes tömb (egyetlen) sztringként lesz átalakítva. Ezután az index operátor kiválasztja a sztringtömb első elemét, amely az első karakter.
PS> ([string]@('Windows','PowerShell','2.0'))[0]
W
A következő példában, mivel a -gt (nagyobb mint) operátor nagyobb előzményű, mint a -and (logikai ÉS) operátor, a kifejezés eredménye HAMIS.
PS> 2 -gt 4 -and 1
False
Ez egyenértékű a következő kifejezéssel.
PS> (2 -gt 4) -and 1
False
Ha az -and operátor nagyobb elsőbbséget élvez, az eredmény IGAZ lesz.
PS> 2 -gt (4 -and 1)
True
Ez a példa azonban az operátorok elsőbbsége kezelésének fontos elvét mutatja be. Ha egy kifejezés nehezen értelmezhető, zárójelek használatával kényszerítse ki a kiértékelési sorrendet, még akkor is, ha az alapértelmezett operátori elsőbbséget kényszeríti ki. A zárójelek egyértelművé teszik a szándékait azok számára, akik olvassák és karbantartják a szkripteket.
Az alábbi példa a logikai operátorok és -or a logikai operátorok közötti elsőbbséget -and mutatja be.
PS> $true -or $false -and $false
False
Más nyelvekben, például a C#-ban a logikai ÉS általában nagyobb elsőbbséget élvez, mint a logikai VAGY, ezért a fenti kifejezés eredménye IGAZ lesz.
A PowerShellben azonban az operátorok és -or az -and operátorok azonos elsőbbséget élveznek.
A kiértékelés balról jobbra történik, ahogy a kifejezésben megjelennek.
Az IGAZ és $true -and $false a HAMIS értékhez hasonlóan $true -or $false a kifejezés eredménye HAMIS.
Fontos
A PowerShell más környezetei, például a WMI-lekérdezési nyelv (WQL) és az Active Directory-szűrő saját operátori elsőbbséget élveznek, amely eltérhet a PowerShell logikai operátorok elsőbbségétől.