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

Разгледайте примера за организиране на просто цветно меню за PowerShell, което позволява на потребителя удобно да избере една от наличните опции за изпълнения скрипт. Този скрипт трябва да предостави на потребителя няколко опции, да контролира избраната опция и в зависимост от избора да извърши допълнителни действия.

Да предположим, че нашият прост скрипт трябва да предостави на потребителя възможност да стартира или спре конкретна услуга на Windows.

Списък с елементи от менюто, предлагани на потребителя, може да бъде показан, както следва:

Напишете-домакин '1. Стартиране на услугата за актуализиране на Windows “
Напишете-домакин '2. Спиране на услугата за актуализиране на Windows “
Напишете-домакин '3. Излезте “

След това приканваме потребителя да избере елемента, като набере номера му:

$ selected_menu_item = Прочетете хост 'Изберете елемент от менюто'

След това обработваме избора на потребител с помощта на оператора за превключване:

Превключвател ($ selected_menu_item)
1 net start wuauserv
2 net stop wuauserv
3 Write-Host 'Exit'; излизане
по подразбиране Write-Host 'Неправилен вход' -ForegroundColor Red

Стартирайте скрипта и проверете неговата ефективност.

Всичко работи добре, само изгледът на менюто оставя много да се желае. Искам нещо по-"умно" и удобно.

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

Функцията за нанасяне на цветове се нарича така:

CreateMenu -Title "Скрипт за актуализиране на Windows" -MenuItems "Стартиране на услугата за актуализиране на Windows", "Спиране на услугата за актуализиране на Windows", "Изход" -TitleColor Red -LineColor Cyan -MenuItemColor Yellow

Така само за няколко минути създадохме приятно цветово меню за нашия скрипт PowerShell. В бъдеще не само неговият създател, но и обикновените потребители ще могат да използват такъв скрипт с комфорт.