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 és ForEach-Object azok megfelelő aliasaiba where és foreach.

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

dir Cert:\LocalMachine\Root | where { $_.FriendlyName -eq 'Verisign' }
dir Cert:\ -Recurse | foreach { $_.GetKeyAlgorithm() }

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 kezelve. Metódust a gyűjtemény objektumaira anélkül hívhat meg, hogy a szkriptblokkon belül az automatikus változóra $_ hivatkozik. Hasonlítsa össze az alábbi két meghívást az előző példában szereplőkkel:

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. A metódus neve GetKeyAlgorithm a paraméter paramétereként lesz kezelve ForEach-Object. A második parancs ugyanazokat az eredményeket adja vissza, de hiba nélkül, mivel az egyszerűsített szintaxis nem próbálja visszaadni azokat az elemeket, amelyekre a megadott argumentum nem vonatkozott.

Ebben a példában a Process tulajdonság Description tagnév paraméterként lesz átadva a ForEach-Object parancsnak. Az eredmények az aktív folyamatok leírásai.

Get-Process | foreach Description

Ebben a példában a DirectoryInfo metódus GetFiles a parancs tagnévparamétereként ForEach-Object lesz átadva. A metódus meghívása a keresési minta paraméterrel .*történik. Az eredmények a FileInfo felhasználói kezdőkönyvtárak összes Unix-stílusú rejtett fájljának rekordjai.

Get-ChildItem /home -Directory | foreach GetFiles .*

Lásd még