[PoSH] Get-Command

Gdy podejmujesz kroki w celu nauki czegoś nowego, właściwym podejście jest poznanie podstaw. Podstaw, które pozwalają sprawniej i szybciej stosować to coś w praktyce. Dajmy na to naukę PowerShell, nie wyobrażam sobie nie poznanie trzech podstawowych poleceń: Get-Command, Get-Member, Get-Help.  

Get-Command i zastosowanie

Bez wątpienia to polecenie można traktować jak wyszukiwarkę. To tym poleceniem jesteśmy wstanie dokopać się do dostępnych na komputerze/serwerze cmdletów, aliasów, funkcji, skryptów i aplikacji. Odpowiednio użyte Get-Command (alias gcm) jest wstanie poratować wtedy, gdy potrzebujemy polecenia a nie daj los, nie mamy dostępu do Internetu:)

Get-Command to polecenie dostępne od PowerShell 1.0 do PowerShell Core 6.0

Pamiętaj, że wszystkie nazwy cmdlety i funkcję zgodnie z standardem składają się pary czasownik(Verb)-rzeczownika(Noun). Gdzie czasownik identyfikuje rodzaj działania (Get, Start, Stop), natomiast rzeczownik określa element, na którym te działanie zostanie wykonane (Process, Job, WebRequest). W znaczym stopniu ułatwi to wyszukiwanie poleceń.

Składnia polecenia Get-Command:

Zestawy poleceń

Na pewno zauważyłeś, że składnia została podana podwójnie i prawdopodobnie zauważyłem między nimi różnicę. Get-Command jak również inne polecenia w PowerShell posiadają zestawy parametrów. Oznacza to, że pewnych parametrów nie jest się wstanie użyć jednocześnie. Jedne wykluczają drugie i tak w tym przykładzie parametr -Verb oraz -Noun wyklucza automatycznie parametr -Name.

Zestaw parametrów - PowerShell (PoSH)

W celu poznania szczegółów na temat zestawów parametrów można wywołać Get-Command tak jak poniżej w celu pobrania obiektu ParameterSets.

Get-Command i szczegóły zestawów parametrów

Otrzymane w ten sposób wyniki rozszerzają nam informacje na temat składni polecenia. Potwierdza to, że Get-Command posiada dwa zestawy parametrów. Na przykład z właściwości ValueFromPipeline i ValueFromPipelineByPropertyName można dowiedzieć się, które parametry przyjmują wartości przekazane poprzez Pipeline/potok. Jednak to temat na inny wpis.

Natomiast wartość false w kolumnie IsMandatory dla wszystkich parametrów wskazuję, że żaden z nich nie jest wymagany. Dlatego możliwe jest wywołanie samego Get-Command, które zwróci na ekran wszystkie dostępne polecenia, co być może można uznać za efektowne, ale na pewno za mało efektywne i funkcjonalne.

get-command

GCM i wyrażenia regularne

Dopiero stosowanie Get-Command wraz z wyrażeniami regularnymi umożliwia nam sprawe poruszanie się po ogromnej ilości dostępnych cmdletów, funkcji w języku PowerShell (PoSH).

Dla parametrów typu <string> możemy wykorzystywać wyrażenia regularne.

Załóżmy szukanie polecenie które pozwoli wyświetlać istniejące procesy na komputerze.

Wyszukiwanie poleceń, wyrażenie regularne - Get-Command

Dwa sposoby w który zostały użyte parametry z dwóch zestawów. W jednym i drugim użyty został znak * który oznacza dopasowanie do dowolnej ilość znaków. Na temat wyrażeń regularnych pojawi się na pewno osobny wpis.

ShowCommandInfo lub -Syntax

Na sam koniec warto wspomnieć o dwóch przełącznikach -ShowCommandInfo lub -Syntax (zwraca wtedy sam obiekt Definition), dzięki którym Get-Command zwraca składnie dla określonych w wyszukiwaniu poleceń.

-ShowCommandInfo lub -Syntax zwraca składnie

Przykłady

Z pasją poświęcam czas na zdobywanie wiedzy w zakresie szeroko rozumianej Data Platform. Zachwycony językiem skryptowym Windows PowerShell. Swoją wiedzę, doświadczenia i spostrzeżenia opisuję na blogu.

Leave a Reply

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *