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 programie 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-Object
where
i ForEach-Object
foreach
.
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:
Składnia Standardowa
Get-ChildItem Cert:\LocalMachine\Root |
Where-Object -FilterScript { $_.FriendlyName -eq 'Verisign' }
Get-ChildItem Cert:\ -Recurse |
ForEach-Object -FilterScript { $_.GetKeyAlgorithm() }
Uwaga
W drugim poleceniu metoda jest wywoływana GetKeyAlgorithm
dla każdego obiektu w kolekcji. Jeśli obiekt otrzymany z potoku nie ma GetKeyAlgorithm
metody, polecenie generuje błąd.
Uproszczona składnia
W ramach uproszczonej składni operatory porównania, które działają na elementach członkowskich obiektów w kolekcji, są implementowane jako parametry. Ponadto 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 ze standardowymi przykładami składni:
Get-ChildItem Cert:\LocalMachine\Root |
Where-Object -Property FriendlyName -EQ 'Verisign'
Get-ChildItem Cert:\ -Recurse |
ForEach-Object -MemberName GetKeyAlgorithm
Ponieważ parametry Property i MemberName są pozycyjne, można je pominąć za pomocą polecenia . Za pomocą aliasów można jeszcze bardziej uprościć polecenia:
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. Uproszczona składnia odczytuje bardziej jak instrukcję języka naturalnego i może być łatwiejsza do zrozumienia.
Nazwa GetKeyAlgorithm
metody jest przekazywana jako argument parametru MemberName klasy ForEach-Object
. Podczas wywoływania metody przy użyciu uproszczonej składni metoda jest wywoływana dla każdego obiektu w potoku tylko wtedy, gdy ten obiekt ma tę metodę. W związku z tym uzyskujesz te same wyniki, ale bez błędów.
W następnym przykładzie Description
parametr MemberName jest przekazywany do parametru ForEach-Object
. Polecenie wyświetla opis każdego obiektu System.Diagnostics.Process zwróconego przez Get-Process
polecenie .
Get-Process | foreach Description
W tym przykładzie nazwa GetFiles
metody jest przekazywana do parametru ForEach-Object
MemberName polecenia. Wartość .*
jest przekazywana do parametru ArgumentList . Metoda jest wywoływana GetFiles()
przy użyciu parametru .*
wzorca wyszukiwania dla każdego obiektu System.IO.DirectoryInfo zwróconego przez Get-ChildItem
element .
Get-ChildItem /home -Directory | foreach GetFiles .*
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla