🚀 7 usprawnień PowerShell 7, o których musisz wiedzieć!

By Po godzinach

Po kilku Relese Candidate, doczekaliśmy PowerShell 7 w wersji Generally Available, co można rozumieć jako wydanie produkcyjne.

Od tego momentu powinno być już tylko prościej. Porzucimy PowerShell 5.1, zapomnimy o PowerShell 6 i zaczniemy używać jednej multiplatformowej wersji PowerShell 7.

Zanim jednak to się stanie, zobacz jak zainstalować (jeśli jeszcze tego nie zrobiłeś) i jakie ulepszenia niesie za sobą PowerShell 7.

Instalacja PowerShell 7

Instalacja dla każdej platformy została dokładnie opisana w dokumentacji:

Zespół PowerShell przygotował również skrypty, które umożliwiają szybką instalacji Powershell 7 za pomocą jednego polecenia.

Jeśli masz już swoją “siódemkę”, zobacz udoskonalenia, które pomogą Ci pisać jeszcze dłuższe jednolinijkowce i jeszcze wydajniejsze skrypty.

1. ForEach-Object -Parallel

Oprócz poprawy wydajności cmdletu Foreach-Object, dodano przełącznik
-Parallel, który z równolegla przetwarzanie bloku skryptu. Co umożliwi jeszcze wydajniejsze przetwarzanie obiektów.

Dodatkowym parametrem -ThrottleLimit (default = 5) ustawimy liczbę bloków, które zostanie przetworzonych w tym samym czasie.

ForEach-Object
RFC0044-ForEach-Parallel-Cmdlet/PowerShell ForEach-Object -Parallel Cmdlet
Making Sense of Parallel ForEach-Object in PowerShell 7
PowerShell 7 New Feature: ForEach-Object -Parallel

2. Null conditional operators: ?? and ??=

Zamiast pisania instrukcji warunkowych do sprawdzania czy zmienna jest nullem, wystarczy, że skorzystasz z nowych operatorów.

Operator ?? zwraca wartość lewej strony, jeśli zmienna po prawej ma wartość null. Operator ??= działa identycznie z jednoczesnym przypisaniem wartości do zmiennej.

null conditional PowerShell 7

Null-coalescing operator ??
Null-coalescing assignment operator ??=
Exploring… Nothing? PowerShell 7’s Null Conditional Operators

3. Ternary operator: a ? b : c

Jeśli mowa o instrukcji warunkowej to kolejną nowością jest potrójny operator, który jest niczym innym jak uproszczoną wersją if-else.

Ternary operator PowerShell 7

Using the ternary operator syntax
RFC0045-Ternary-Operator/Add Ternary Operator to PowerShell Language

4. Pipeline chain operators: || and &&

Nowe operatory wykorzystasz do warunkowego przetwarzania potoku. Operator && wykonuje prawą stronę, jeśli lewa zakończyła się sukcesem. I odwrotnie, || operator wykonuje prawy rurociąg, jeśli lewy zakończył się niepowodzeniem

Operatory wykorzystują zmienne $? oraz $LASTEXITCODE w celu ustalenia statusu działania.

About Pipeline Chain Operator
RFC0046-Chain-Operators/Pipeline Chain Operators

5. Widok ConciseView oraz Get-Error

Dodany został nowy, zwięzły widok wyświetlania błędów (ConciseView) dla poleceń interaktywnych i skryptów w celu zwiększenia ich czytelności.

ConciseView PowerShell 7

Z tą zmianą związane jest pojawienie się cmdletu Get-Error do wyświetlania w sformatowany sposób pełnych informacji na temat (domyślnie) ostatniego błędu.

Get-Error PowerShell 7

Get-Error
ERROR HANDLING IN POWERSHELL 7 WITH GET-ERROR AND $ERRORVIEW

6. Select-String z podkreśleniem

Polecenie Select-String w PowerShell 7 dodaje zaznaczenie/podkreślenie ciągu zgodnego ze wzorcem.

Select-string powershell 7

Przełącznikiem -NoEmphasis przywrócimy sposób działania jak w PowerShell 5.

Select-String

7. Inne zmiany w PowerShell 7

Dodanie uzupełniania tabulatorem wartości dla zmiennych, które są ograniczone typem wyliczeniowym (enum). Małe usprawnienie, ale pomocne.

Zmiany zaszły również w Test-Connection, aby działanie polecenia było zbliżone z tego, co znamy z Windows PowerShell.

Polecenia z GUI takie jak Out-GridviewShow-Command i Get-Help -ShowWindow są z powrotem w systemie Windows.

GUI PowerShell 7

Oprócz tego w PowerShell 7 powróciły takie polecenia (w porównaniu do PowerShell 6) jak: Get-ClipboardSet-ClipboardUpdate-ListGet-Counter (tylko Windows), Get-HotFix (tylko Windows), Out-Printer (tylko Windows), Clear-RecycleBin (tylko Windows).

PowerShell 7 Changes to JSON Cmdlets

Podsumowanie

Zmiany, które znalazły się we wpisie to jedne z większych. Jeśli chcesz zapoznać się z pełną listą zmian i udoskonaleń to znajdziesz ją tutaj.

22 Najważniejsze Wskazówki Pisania Skryptów PowerShell

No comments yet.

Dodaj komentarz

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

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

× Close