
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:
- Installing PowerShell Core on Windows
- Installing PowerShell Core on Linux
- Installing PowerShell Core on macOS
- Installing PowerShell Core on ARM
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-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
.

➡ 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.

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
➡ 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.

Przełącznikiem -NoEmphasis przywrócimy sposób działania jak w PowerShell 5.
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-Gridview, Show-Command i Get-Help -ShowWindow są z powrotem w systemie Windows.

Oprócz tego w PowerShell 7 powróciły takie polecenia (w porównaniu do PowerShell 6) jak: Get-Clipboard, Set-Clipboard, Update-List, Get-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.
No comments yet.