about_Simplified_Syntax
Rövid leírás
Az objektumgyűjtemények szkriptszűrőinek egyszerűbb, természetesebb nyelvi módjait ismerteti.
Hosszú leírás
A Windows PowerShell 3.0-ban bevezetett egyszerűsített szintaxis lehetővé teszi, hogy szkriptblokkok használata nélkül hozzon létre néhány szűrőparancsot. Az egyszerűsített szintaxis jobban hasonlít a természetes nyelvre, és elsősorban olyan objektumgyűjtemények esetén hasznos, amelyek parancsokba Where-Object
vagy ForEach-Object
azok megfelelő aliasaiba where
foreach
és .
A gyűjtemények (leggyakrabban tömbök) tagjain használhat metódust anélkül, hogy a szkriptblokkon belül az automatikus változóra $_
hivatkozik.
Fontolja meg a következő két meghívást:
Standard szintaxis
Get-ChildItem Cert:\LocalMachine\Root |
Where-Object -FilterScript { $_.FriendlyName -eq 'Verisign' }
Get-ChildItem Cert:\ -Recurse |
ForEach-Object -FilterScript { $_.GetKeyAlgorithm() }
Feljegyzés
A második parancsban a rendszer meghívja a GetKeyAlgorithm
metódust a gyűjtemény minden objektumára. Ha a folyamatból kapott objektum nem rendelkezik metódussal GetKeyAlgorithm
, a parancs hibát okoz.
Egyszerűsített szintaxis
Az egyszerűsített szintaxis alatt a gyűjtemény objektumainak tagjain dolgozó összehasonlító operátorok paraméterként lesznek implementálva. Emellett meghívhat egy metódust egy gyűjtemény objektumaira anélkül, hogy a szkriptblokkban lévő automatikus változóra $_
hivatkozik. Hasonlítsa össze a következő két meghívást a szabványos szintaxisbeli példákhoz:
Get-ChildItem Cert:\LocalMachine\Root |
Where-Object -Property FriendlyName -EQ 'Verisign'
Get-ChildItem Cert:\ -Recurse |
ForEach-Object -MemberName GetKeyAlgorithm
Mivel a Tulajdonság és a MemberName paraméterek pozíciósak, kihagyhatja őket a parancsból. Az aliasok használatával tovább egyszerűsítheti a parancsokat:
dir Cert:\LocalMachine\Root | Where FriendlyName -EQ 'Verisign'
dir Cert:\ -Recurse | ForEach GetKeyAlgorithm
Bár mindkét szintaxis működik, az egyszerűsített szintaxis az eredményeket a szkriptblokkon belüli automatikus változóra $_
való hivatkozás nélkül adja vissza. Az egyszerűsített szintaxis inkább egy természetes nyelvi utasításhoz hasonlít, és könnyebben érthető.
A metódus neve GetKeyAlgorithm
argumentumként lesz átadva a következő TagName paraméteréhez ForEach-Object
: . Amikor az egyszerűsített szintaxissal hívja meg a metódust, a metódus csak akkor lesz meghívva a folyamat egyes objektumaihoz, ha az objektum rendelkezik ezzel a módszerrel. Ezért ugyanazokat az eredményeket kapja, de hiba nélkül.
A következő példában Description
a rendszer átadja a következő TagName paraméternek ForEach-Object
. A parancs megjeleníti az egyes System.Diagnostics.Process objektumok leírását, amelyeket a rendszer visszaadott Get-Process
.
Get-Process | foreach Description
Ebben a példában a metódus neve GetFiles
a parancs MemberName paraméterének ForEach-Object
lesz átadva. Az .*
érték az Argumentumlista paraméternek lesz átadva. A GetFiles()
metódust a rendszer meghívja az egyes System.IO.DirectoryInfo-objektumok keresési mintájának paraméterével .*
Get-ChildItem
.
Get-ChildItem /home -Directory | foreach GetFiles .*
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: