Pracując z PowerShellem, pierwszym, na co natrafiamy, są polecenia (Cmdlet).
Wywołanie polecenia wygląda tak:
Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]
Pomoc
Wywołanie pomocy w PowerShell odbywa się za pomocą polecenia Get-Help. Można podać jeden z parametrów: example, detailed, full, online, showWindow.
Get-Help Get-Service -full zwróci pełny opis działania polecenia Get-Service.
Get-Help Get-S* pokaże wszystkie dostępne polecenia i funkcje zaczynające się od Get-S*.
Szczegółowa dokumentacja znajduje się również na oficjalnej stronie Microsoft.
Oto przykładowa pomoc dla polecenia Get-EventLog.

Jeśli parametry są ujęte w kwadratowe nawiasy [], to są one opcjonalne.
To znaczy, że w tym przykładzie sama nazwa dziennika jest obowiązkowa, natomiast nazwa parametru nie. Jeśli typ parametru i jego nazwa są ujęte w nawiasy razem, to ten parametr jest opcjonalny.
Patrząc na parametr EntryType, widać wartości ujęte w klamrowe nawiasy. Dla tego parametru możemy używać tylko zdefiniowanych wartości w klamrowych nawiasach.
Informację o tym, czy parametr jest obowiązkowy, możemy zobaczyć w opisie poniżej, w polu Required. W powyższym przykładzie atrybut After jest opcjonalny, ponieważ obok Required stoi false. Następnie widzimy pole Position, obok którego napisano Named. Oznacza to, że można odwołać się do parametru tylko po nazwie, tzn.:
Get-EventLog -LogName Application -After 2020.04.26.Ponieważ dla parametru LogName zamiast Named wskazano liczbę 0, oznacza to, że możemy odwołać się do parametru bez jego nazwy, podając go w odpowiedniej kolejności:
Get-EventLog Application -After 2020.04.26.Możemy również zastosować taki porządek:
Get-EventLog -Newest 5 Application.Alias
Aby móc korzystać z znanych poleceń konsoli w PowerShell, istnieją aliasy (Alias).
Przykładem aliasu dla polecenia Set-Location jest cd.
To znaczy, że zamiast wywołania polecenia
Set-Location "D:".możemy użyć
cd "D:".Historia
Aby zobaczyć historię wywołań poleceń, można użyć Get-History.
Wykonać polecenie z historii Invoke-History 1; Invoke-History 2.
Wyczyścić historię Clear-History.
Pipeline
Pipeline w PowerShell to sytuacja, w której wynik wykonywania pierwszej funkcji przekazywany jest do drugiej. Oto przykład użycia pipeline'a:
Get-Verb | Measure-Object.Aby lepiej zrozumieć pipeline, weźmy prostszy przykład. Jest polecenie
Get-Verb "get".Jeśli wywołasz pomoc Get-Help Get-Verb -Full, zobaczysz, że parametr Verb akceptuje dane wejściowe pipelinowe i w nawiasach napisano ByValue.

To oznacza, że możemy przepisać Get-Verb «get» na «get» | Get-Verb.
Oznacza to, że wynik pierwszego wyrażenia to ciąg znaków, który jest przekazywany do parametru Verb polecenia Get-Verb przez input pipeliny jako wartość.
Input pipeliny może również być ByPropertyName. W takim przypadku przekazujemy obiekt, który ma właściwość o podobnej nazwie do Verb.
Zmienne
Zmienne nie są ściśle typowane i są zadawane z użyciem znaku $ na początku.
$example = 4Znak > oznacza umieszczenie danych w
Na przykład, $example > File.txt
Tym wyrażeniem umieścimy dane z zmiennej $example w pliku.
Podobnie jak w poleceniu Set-Content -Value $example -Path File.txt.
Tablice
Inicjalizacja tablicy:
$ArrayExample = @(“First”, “Second”)Inicjalizacja pustej tablicy:
$ArrayExample = @()Uzyskiwanie wartości według indeksu:
$ArrayExample[0]Uzyskanie całej tablicy:
$ArrayExampleDodawanie elementu:
$ArrayExample += “Third”$ArrayExample += @(“Fourth”, “Fifth”)Sortowanie:
$ArrayExample | Sort$ArrayExample | Sort -DescendingJednak sama tablica pozostaje niezmieniona podczas sortowania. Jeżeli chcemy, aby tablica zawierała posortowane dane, musimy przypisać posortowane wartości:
$ArrayExample = $ArrayExample | SortW zasadzie w PowerShell nie ma usuwania elementu z tablicy, ale można to zrobić w ten sposób:
$ArrayExample = $ArrayExample | where { $_ -ne “First” }$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }
Usuwanie tablicy:
$ArrayExample = $nullPętle
Składnia pętli:
for($i = 0; $i -lt 5; $i++){}
$i = 0
while($i -lt 5){}
$i = 0
do{} while($i -lt 5)
$i = 0
do{} until($i -lt 5)
ForEach($item in $items){}Wyjście z pętli break.
Pomiń element continue.
Instrukcje warunkowe
if () {} elseif () {} elseswitch($someIntValue){
1 { “Opcja 1” }
2 { “Opcja 2” }
default { “Nie ustawione” }
}
Funkcja
Definicja funkcji:
function Example () {
echo &args
}Uruchomienie funkcji:
Example “Pierwszy argument” “Drugi argument”Definiowanie argumentów w funkcji:
function Example () {
param($first, $second)
}
function Example ($first, $second) {}Uruchomienie funkcji:
Example -first “Pierwszy argument” -second “Drugi argument”Wyjątek
try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}
Źródło: habr.com
