PowerShell 7 - Какво е новото и какво си струва превключването

общ преглед
Направени са Windows PowerShell (за Windows) и PowerShell Core (за Windows, macOS и Linux) обединени в PowerShell 7 и формират техните наследници.
PowerShell 7 е базиран и е съвместим с .NET Core 3.1 (НЕГОВ).
PowerShell 7 е съвместим надолу и може също така да се използва продуктивно паралелно на Windows PowerShell.
PowerShell 7 също е за .NET разработчик привлекателен, защото можете да пишете .NET приложения на различни платформи на един скриптов език.

Иновациите и промените в PowerShell 7 са свързани със следните области:
- Общи и всеобхватни промени
- Cmdlets
- Системни променливи
- Оператори
- Поведение на PowerShell
- Работа и документация
Какво ново и превключвателят си заслужава?
The последната версия на PowerShell 7 можете да се обърнете към GitHub:
Изтегляне на PowerShell 7.
Официалното описание на промяната в PowerShell можете да намерите тук:
Какво е новото в PowerShell 7.0.
Историята на публикуването на модулите PowerShell можете да намерите тук:
История на издаване на модули и кратки команди.
PowerShell 7 се предлага за следните операционни системи:
- Windows 7, 8.1 и 10
- Windows Server 2008 R2, 2012, 2012 R2, 2016 и 2019
- macOS 10.13+
- Red Hat Enterprise Linux (RHEL)/CentOS 7+
- Fedora 29+
- Debian 9+
- Ubuntu 04/16+
- openSUSE 15+
- Alpine Linux 3.8+
След инсталирането на PowerShell 7 ще намерите новия интерпретатор на командния ред под:
& 'C: \ Program Files \ PowerShell \ 7 \ PwSh.exe'
СЪВЕТ - Уверете се, че сте актуализирали и модулите и помощните файлове след инсталиране на PowerShell 7.
1. Експериментални функции
Поддръжката за експериментални функции в PowerShell 7 осигурява механизъм, чрез който експерименталните функции могат да съществуват едновременно със съществуващите стабилни функции (вижте about_Experimental_Features).
Например командата не е намерена Предложението показва:
Сега просто напишете get в конзолата PowerShell и след това използвайте CTRL + SPACE, за да покажете автодовършването.
СЪВЕТ - Експерименталните функции могат да бъдат внедрени и във вашите собствени модули.
Общи промени в PowerShell 7
- Когато хостът на PowerShell 7 стартира, той информира за наличието на актуализации:
- Места за инсталиране на нови модули:
- Модулите на Windows PowerShell са налични и в PowerShell 7 чрез "Windows Compability Wrapper". Windows PowerShell 5.1 също се изисква. Ако модулният манифест не посочва дали модулът е съвместим с Core, модулът се зарежда в процес на Windows PowerShell и се отразява в текущата сесия на PowerShell 7, като се използва дистанционно:
- Ново PS устройство за съхранение на свързани с потребителя временни файлове:
- Invoke-DscResource вече работи в ОС (експериментално):
Напишете напредък Лентата за напредъка вече се показва в Visual Studio Code:
Нови и променени кратки команди
Clear-RecycleBin - новият cmdlet изпразва кошчето:
Грешка при получаване - Новият командлет предоставя важна информация за анализ/оценка на грешки:
Out-GridView - нов модул (Microsoft.PowerShell.GraphicalTools, версия 0.2.0) за GUI с припокриване на OS (Out-GridView, Show-Command, Get-Help-ShowWindow):
Тествайте json - новият командлет осигурява валидиране на JSON схема:
ForEach-Object - към тази команда е добавена паралелна обработка:
PowerShell 7 вече поддържа езика за маркиране Markdown. Markdown е опростен език за маркиране. Една от целите на Markdown е това Първоначалната форма е лесно четима без допълнително преобразуване е:
Къде-Обект - Параметър -Not Switch е добавен към командлета:
- Format-Hex - кратката команда е подобрена за шестнадесетично представяне на различни обекти на тръбопровода:
- Select-String - тази команда е подобрена, за да подчертае визуално събитията:
Параметърът на превключвателя -NoEmphasis деактивира осветяването.
Актуализиране на списъка - новата команда за актуализация на записи в списъка (Добавяне/премахване) от свойствата на обекта на списъка:
PowerShell 7 променливи
- $ ErrorView - Новата променлива определя стандартната изходна стойност на грешката:
- $ ErrorActionPreference - Ако на променливата или параметъра -ErrorAction е присвоена новата стойност на преброяването Break, изпълнението спира и режимът DEBUG се превключва на:
Нови и променени оператори

Новите оператори на PowerShell 7
-разделен - този оператор е разширен, за да включва редица елементи НАДЯСНО:
а? b: c - трикратен оператор - вграден тричаст, ако е добавен оператор:
&& и || - Оператори на тръбопроводи - Добавени са тези оператори за верижно свързване на тръбопроводи:
Описва свързването на тръбопроводи с && и || Оператори:
Get-Help -Name "about_Pipeline_Chain_Operators" -ShowWindow
Статията предоставя задълбочен поглед върху обработката на тръбопроводи:
Усещане и употреба на PowerShell Pipeline.
? - Нулев коалесиращ оператор - Добавен е оператор за събиране на NULL. В зависимост от NULL стойност трябва да се извърши разграничаване на случая, което досега е трябвало да се изпълни, както следва:
Тази конструкция вече може да бъде приложена по опростен начин, както следва:
Операторите за събиране на NULL са право-асоциативни, т.е. $ a ? $ b ? $ c се обработва, както следва:
?=,?. - Нулеви условни оператори - тези оператори са добавени. Ако променлива съдържа $ NULL, трябва да й бъде присвоена стойност по подразбиране, която досега е трябвало да бъде внедрена, както следва:
Тази конструкция вече може да бъде приложена по опростен начин, както следва:
Промени в обработката и документацията
Има автоматично попълване (CTRL + SPACE) за присвояване на стойности на изброяване (enum) на променливи.