PowerShell 7 - Що нового та чого варто змінити

огляд
Створено Windows PowerShell (для Windows) та PowerShell Core (для Windows, macOS та Linux) об’єднано в PowerShell 7 і формують їх наступників.
PowerShell 7 базується і є сумісний з .NET Core 3.1 (LTS).
PowerShell 7 є сумісний зі зниженням а також може продуктивно використовуватися паралельно Windows PowerShell.
PowerShell 7 також для .NET розробник привабливим, оскільки ви можете писати програми .NET на різних платформах однією мовою сценаріїв.

Нові функції та зміни в PowerShell 7 стосуються таких областей:
- Загальні та загальні зміни
- Cmdlets
- Системні змінні
- Оператори
- Поведінка PowerShell
- Обробка та документація
Що нового і перемикач того вартий?
остання версія 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". Також потрібна Windows PowerShell 5.1. Якщо в маніфесті модуля не вказано, чи модуль сумісний з Core, модуль завантажується у процес Windows PowerShell і відображається у поточному сеансі PowerShell 7 за допомогою віддаленого:
- Новий привід PS для зберігання тимчасових файлів, пов’язаних з користувачем:
- Invoke-DscResource тепер працює в різних ОС (експериментально):
Напишіть прогрес Рядок виконання тепер відображається в Visual Studio Code:
Нові та змінені командлети
Clear-RecycleBin - новий командлет очищає сміття:
Помилка отримання - Новий командлет надає важливу інформацію для аналізу/оцінки помилок:
Out-GridView - новий модуль (Microsoft.PowerShell.GraphicalTools, версія 0.2.0) для графічних інтерфейсів, що перекриваються ОС (Out-GridView, Show-Command, Get-Help-ShowWindow):
Перевірте json - новий командлет забезпечує перевірку схеми JSON:
ForEach-Object - паралельна обробка була додана до цього командлету:
PowerShell 7 тепер підтримує мову розмітки 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 + ПРОБІЛ) для присвоєння змінним значень перерахування (enum).