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

Нові оператори PowerShell 7

-розколоти - цей оператор розширено, включаючи ряд елементів ВПРАВО:

а? b: c - потрійний оператор - трирядний рядок, якщо додано оператор:

&& та || - Оператори ланцюгів трубопроводів - Додано такі оператори ланцюжкового з'єднання:

Описує ланцюжки трубопроводів з && та || Оператори:
Get-Help -Name "about_Pipeline_Chain_Operators" -ShowWindow

Стаття дає глибоке розуміння процесів обробки трубопроводів:
Сенс і використання PowerShell Pipeline.

? - Нульовий оператор злиття - Додано оператор збору NULL. Залежно від значення NULL має відбуватися розмежування випадків, яке до цього часу мало реалізовуватися наступним чином:

Ця конструкція тепер може бути реалізована спрощеним чином наступним чином:

Оператори збору NULL є право-асоціативними, тобто $ a ? $ b ? $ c обробляється наступним чином:

?=,?. - Нульові умовні оператори - ці оператори були додані. Якщо змінна містить $ NULL, їй слід присвоїти значення за замовчуванням, яке до цього часу мало реалізовуватися наступним чином:

Ця конструкція тепер може бути реалізована спрощеним чином наступним чином:

Зміни в обробці та документації

Існує автоматичне заповнення (CTRL + ПРОБІЛ) для присвоєння змінним значень перерахування (enum).