Как улучшить ваши пакетные файлы Windows, добавив графический интерфейс

Давайте модернизируем ваши старомодные командные файлы Windows с помощью PowerShell и .NET.

Обычно мы используем сценарии Bash на платформе Linux для выполнения различных типов задач автоматизации. Точно так же мы могли бы писать пакетные сценарии в Windows. Однако Microsoft представила сценарии PowerShell в новых версиях Windows, добавив способ использования модулей платформы .NET. PowerShell имеет некоторые расширенные функции, такие как объектно-ориентированный вывод, конвейеры и множество новых команд по сравнению со старым приложением командной строки. Если у вас есть несколько сценариев Bash в Linux, такие команды, как zenity и notify-send, можно использовать для модернизации этих сценариев путем добавления графических элементов.

Несколько дней назад я добавлял в Neutralinojs новую функцию для отображения всплывающих уведомлений в Windows. У меня было несколько вариантов: реализовать с помощью библиотеки типа WinToast, реализовать с нуля и добиться того же результата, запустив процесс PowerShell с помощью блока кода. Третий вариант был настолько быстрым, и ту же концепцию можно применить и для модернизации старомодных командных файлов Windows. Если мы пишем командный файл для нетехнической аудитории, всегда полезно использовать графический интерфейс для повышения удобства использования.

Основы

Следующий формат команды используется для выполнения блока кода в PowerShell без вывода сообщений. Кроме того, его можно было добавить в любой пакетный сценарий для выполнения фрагментов PowerShell. Следовательно, если пользователь запускает пакетный сценарий в версии Windows, которая поддерживает сценарии PowerShell, конкретный блок кода будет выполнен в PowerShell через приложение командной строки.

powershell -Command "& {<PowerShell code-block goes here>}"

Уведомления

Всплывающее уведомление Windows — отличный способ показать завершение задачи или длительный процесс вместо того, чтобы печатать текст в консоли.

См. также:  Моно-репо или мульти-репо? Зачем выбирать одно, если можно и то, и другое?

При выполнении вышеуказанного пакетного сценария будет отображаться всплывающее уведомление следующего типа.

Окна сообщений

Окна сообщений на основе собственного графического интерфейса могут использоваться для отображения сообщений об ошибках, информации о задачах, а также для запроса решений у пользователя в удобной для пользователя форме. Если мы используем старомодные команды пакетного сценария, нам часто приходится просить пользователя вводить определенный ключ для каждого решения. Следующий пакетный сценарий отобразит основное окно сообщения.

Приведенный выше исходный код пакетного сценария создаст графическое информационное окно, как показано ниже. Также могут отображаться другие типы окон сообщений, такие как предупреждение, ошибка, вопрос и т. Д.

Кроме того, мы также можем определить, какая кнопка была нажата, сохранив вывод интерпретатора PowerShell в переменной пакетного сценария. Но пакетные сценарии не поддерживают прямые назначения, такие как сценарии Bash на платформах Linux. Поэтому самый простой способ — создать временный файл для хранения выходного значения. Следующий пакетный сценарий отобразит окно сообщения с кнопками «Да» и «Нет». После этого, в соответствии с кнопкой, которую нажал пользователь, он будет выполнять последующие действия соответственно.

Поля ввода

Команда set может использоваться для захвата ввода от пользователя в переменную. Но удобство использования будет улучшено для нетехнических пользователей, если ввод будет захвачен из текстового поля на основе графического интерфейса пользователя, потому что он будет поддерживать базовые функции, поступающие из операционной системы, такие как отмена, повтор и копирование-вставка. Давайте напишем пакетный сценарий для отображения захваченного пользовательского ввода полностью с использованием элементов графического интерфейса.

Приведенный выше сценарий отобразит поле ввода. После этого он будет отображать введенный текст через собственное окно сообщения, как показано на следующей записи экрана.

См. также:  5 ключевых тем интеллектуальной автоматизации на 2021 год

Пользовательские элементы графического интерфейса

Во всех вышеперечисленных демонстрациях используются предварительно созданные элементы пользовательского интерфейса. Несмотря на то, что вам нужно создавать настраиваемые диалоговые окна, их можно реализовать с помощью команд PowerShell, поскольку он предлагает привязки к методам .NET. Все, что достигается с помощью .NET, также может быть реализовано в пакетном сценарии через блоки кода PowerShell с использованием этого подхода. Более того, этот подход можно использовать для отображения компонентов собственного графического интерфейса и уведомлений через любой язык программирования, как я сделал, используя C ++ для проекта Neutralinojs.

Приведенный выше сценарий покажет окно с собственной меткой. Точно так же любой пользовательский элемент графического интерфейса может быть добавлен в ваши командные файлы Windows путем вызова необходимых методов из .NET framework.

У этого метода есть небольшая проблема. Такой подход может немного замедлить ваши командные файлы, потому что каждый элемент графического интерфейса, такой как родительское окно или уведомление, будет создавать отдельный процесс. Однако эту медлительность можно игнорировать с помощью вычислительной мощности современных компьютеров.

Понравилась статья? Поделиться с друзьями:
IT Шеф
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: