Как организовать цветное меню в PowerShell скрипте | Windows для системных администраторов

Как организовать цветное меню в PowerShell скрипте

Рассмотрим пример организации простого цветного меню для PowerShell, позволяющего пользователю удобно выбрать одну из имеющихся опций выполняемого скрипта. Данный скрипт должен предоставлять пользователю несколько вариантов выбора, контролировать выбранную опцию и, в зависимости от выбора, выполнять дальнейшие действия.

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

Вывести список пунктов меню, предлагаемых пользователю, можно так:

Write-Host '1. Start Windows Update service'
Write-Host '2. Stop Windows Update service'
Write-Host '3. Exit'

Далее предложим пользователю выбрать пункт, набрав его номер:

$selected_menu_item = Read-Host 'Select menu item'

Затем выбор пользователя обработаем при помощи оператора switch:

Switch($selected_menu_item){
1{net start wuauserv}
2{net stop wuauserv }
3{Write-Host 'Exit'; exit}
default {Write-Host 'Incorrect input' -ForegroundColor Red}
}

Запускаем скрипт и проверяем его работоспособность.

Меню с опциями для Powershell скриптаВсе работает нормально, вот только представление меню оставляет желать лучшего. Хочется чего-то более «нарядного» и удобного.

Можно попробовать создать более красивое меню с цветным заголовком, пунктами и рамочкой вручную, но это довольно трудоемко, т.к. придется вручную высчитывать размер рамки таблицы в зависимости от длины текстовых полей. Гораздо проще воспользоваться готовым скриптом. Мне в галерее Technet понравилась готовая функция Create colorful PowerShell Menu Function (https://gallery.technet.microsoft.com/scriptcenter/Create-colorful-PowerShell-8689c5b2), которая обладает всем необходимым функционалом. Сохраняем код функции в файл с именем color_menu.psm1 и импортируем его в сессию PoSh:
Import-Module C:\PS\color_menu.psm1

Функция построения цветного вызывается таким образом:

CreateMenu -Title "Windows Update Script" -MenuItems "Start Windows Update service","Stop Windows Update service","Exit" -TitleColor Red -LineColor Cyan -MenuItemColor Yellow

Цветное меню для PoShИтак, буквально за пару минут мы создали симпатичное цветное меню для своего PowerShell скрипта. Таким скриптом в дальнейшем с комфортом сможет пользоваться не только его создатель, но и простые пользователи.

Еще записи по теме: PowerShell
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Комментариев: 2

Оставить комментарий
  1. Oleg | 23.09.2015

    А для функции $host.ui.PromptForChoice никак раскрашивание не организовать?
    Только желтый?

    Ответить
    • itpro | 24.09.2015

      Эта функция вроде не консольная, и реализует диалог в GUI…

      Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.24MB/0.00170 sec