Розглянемо приклад організації простого кольорового меню для 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
Запускаємо скрипт і перевіряємо його працездатність.
Все працює нормально, ось тільки уявлення меню залишає бажати кращого. Хочеться чогось більш "ошатного" і зручного.
Можна спробувати створити більш красиве меню з кольоровим заголовком, пунктами і рамочкою вручну, але це досить складно, тому що доведеться вручну вираховувати розмір рамки таблиці в залежності від довжини текстових полів. Набагато простіше скористатися готовим скриптом. Мені в галереї 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
Отже, буквально за пару хвилин ми створили симпатичне кольорове меню для свого PowerShell скрипта. Таким скриптом надалі з комфортом зможе користуватися не тільки його творець, але і прості користувачі.