about_Simplified_Syntax

Krótki opis

Opisuje łatwiejsze, bardziej naturalne sposoby tworzenia skryptów filtrów dla kolekcji obiektów.

Długi opis

Uproszczona składnia wprowadzona w Windows PowerShell 3.0 umożliwia tworzenie niektórych poleceń filtru bez użycia bloków skryptów. Uproszczona składnia bardziej przypomina język naturalny i jest przydatna przede wszystkim w przypadku kolekcji obiektów, które są przesyłane potokiem do poleceń i odpowiadających im aliasów Where-Objectwhere i foreach.ForEach-Object

Można użyć metody na elementach członkowskich kolekcji (najczęściej tablicy) bez odwoływania się do zmiennej $_ automatycznej wewnątrz bloku skryptu.

Rozważ następujące dwa wywołania:

Standardowa składnia

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

Uproszczona składnia

W uproszczonej składni operatory porównania, które działają na elementach członkowskich obiektów w kolekcji, są traktowane jako parametry. Można wywołać metodę dla obiektów w kolekcji bez odwoływania się do zmiennej $_ automatycznej wewnątrz bloku skryptu. Porównaj następujące dwa wywołania z tymi z poprzedniego przykładu:

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

Chociaż obie składnie działają, uproszczona składnia zwraca wyniki bez odwoływania się do zmiennej $_ automatycznej wewnątrz bloku skryptu. Nazwa GetKeyAlgorithm metody jest traktowana jako parametr .ForEach-Object Drugie polecenie zwraca te same wyniki, ale bez błędów, ponieważ uproszczona składnia nie próbuje zwracać wyników dla elementów, dla których nie zastosowano określonego argumentu.

W tym przykładzie Process właściwość Description jest przekazywana jako parametr nazwy elementu członkowskiego do ForEach-Object polecenia . Wyniki to opisy aktywnych procesów.

Get-Process | foreach Description

W tym przykładzie DirectoryInfo metoda GetFiles jest przekazywana jako parametr ForEach-Object nazwy elementu członkowskiego polecenia. Metoda jest wywoływana za pomocą parametru .*wzorca wyszukiwania . Wyniki to FileInfo rekordy dla wszystkich ukrytych plików w stylu unix w katalogach domowych użytkownika.

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

Zobacz też