about_Simplified_Syntaxabout_Simplified_Syntax

KRÓTKI OPISSHORT DESCRIPTION

Opisuje łatwiejsze, bardziej naturalne metody filtrów skryptów dla kolekcji obiektów.Describes easier, more natural-language ways of scripting filters for collections of objects.

DŁUGI OPISLONG DESCRIPTION

Uproszczona składnia wprowadzona w programie Windows PowerShell 3,0 umożliwia tworzenie niektórych poleceń filtru bez używania bloków skryptów.Simplified syntax, introduced in Windows PowerShell 3.0, lets you build some filter commands without using script blocks. Uproszczona składnia bardziej przypomina język naturalny i jest szczególnie przydatna w przypadku kolekcji obiektów, które uzyskują potoki z poleceniami Where-Object i ForEach-Object odpowiednimi aliasami where i foreach .The simplified syntax more closely resembles natural language, and is primarily useful with collections of objects that get piped into commands Where-Object and ForEach-Object and their corresponding aliases where and foreach.

Można użyć metody na elementach członkowskich kolekcji (najczęściej jest to tablica) bez odwoływania się do zmiennej automatycznej $_ wewnątrz bloku skryptu.You can use a method on the members of a collection (most commonly, an array) without referring to the automatic variable $_ inside a script block.

Weź pod uwagę następujące dwa wywołania:Consider the following two invocations:

Standardowa — składniaStandard Syntax

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

Uproszczona składniaSimplified syntax

W ramach uproszczonej składni operatory porównania, które działają na elementach członkowskich obiektów w kolekcji, są traktowane jako parametry.Under the simplified syntax, comparison operators that work on members of objects in a collection are treated as parameters. Metodę można wywołać dla obiektów w kolekcji bez odwoływania się do zmiennej automatycznej $_ wewnątrz bloku skryptu.You can invoke a method on objects in a collection without referring to the automatic variable $_ inside a script block. Porównaj następujące dwa wywołania z poprzednimi przykładami:Compare the following two invocations to those of the previous example:

dir Cert:\LocalMachine\Root | where FriendlyName -eq 'Verisign'
dir Cert:\ -Recurse | foreach GetKeyAlgorithm

Chociaż obie składnią działają, uproszczona składnia zwraca wyniki bez odwoływania się do zmiennej automatycznej $_ wewnątrz bloku skryptu.While both syntaxes work, the simplified syntax returns results without referring to the automatic variable $_ inside a script block. Nazwa metody GetKeyAlgorithm jest traktowana jako parametr ForEach-Object .The method name GetKeyAlgorithm is treated as a parameter of ForEach-Object. Drugie polecenie zwraca te same wyniki, ale bez błędów, ponieważ uproszczona składnia nie próbuje zwrócić wyników dla elementów, dla których określony argument nie ma zastosowania.The second command returns the same results, but without errors, because the simplified syntax does not attempt to return results for items for which the specified argument did not apply.

W tym przykładzie Process Właściwość Description jest przenoszona jako parametr nazwy elementu członkowskiego do ForEach-Object polecenia.In this example, the Process property Description is passed as the member name parameter to the ForEach-Object command. Wyniki są opisami aktywnych procesów.The results are descriptions of active processes.

Get-Process | foreach Description

W tym przykładzie DirectoryInfo Metoda GetFiles jest przenoszona jako parametr nazwy elementu członkowskiego ForEach-Object polecenia.In this example, the DirectoryInfo method GetFiles is passed as the member name parameter of the ForEach-Object command.
Metoda jest wywoływana z parametrem wzorca wyszukiwania .* .The method is called with the search pattern parameter .*.
Wyniki są FileInfo rejestrowane dla wszystkich ukrytych plików w stylu systemu UNIX w katalogach macierzystych użytkownika.The results are FileInfo records for all Unix-style hidden files in user home directories.

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

ZOBACZ RÓWNIEŻSEE ALSO