Ako usporiadať farebné menu v skripte PowerShell

Zoberme si príklad usporiadania jednoduchej farebnej ponuky pre PowerShell, ktorá umožňuje používateľovi pohodlne vybrať jednu z dostupných možností pre vykonaný skript. Tento skript by mal používateľovi poskytnúť niekoľko možností, ovládať vybratú možnosť a podľa voľby vykonať ďalšie akcie.

Predpokladajme, že náš jednoduchý skript by mal používateľovi poskytnúť možnosť spustiť alebo zastaviť konkrétnu službu Windows.

Zoznam položiek ponuky ponúkaných používateľovi je možné zobraziť nasledovne:

Hostiteľ zápisu '1. Spustiť službu Windows Update “
Hostiteľ zápisu 2. Zastaviť službu Windows Update “
Hostiteľ zápisu 3. Exit '

Ďalej vyzývame používateľa, aby vybral položku vytočením jeho čísla:

$ selected_menu_item = Read-Host 'Select item item'

Potom spracujeme výber užívateľa pomocou príkazu switch:

Prepínač ($ selected_menu_item)
1 net start wuauserv
2 net stop wuauserv
3 Write-Host 'Exit'; exit
predvolené nastavenie Write-Host 'Nesprávny vstup' -ForegroundColor Red

Spustite skript a skontrolujte jeho výkon.

Všetko funguje dobre, iba pohľad z ponuky necháva veľa miesta. Chcem niečo inteligentnejšie a pohodlnejšie.

Môžete skúsiť vytvoriť krajšie menu s farebným nadpisom, odsekmi a rámom ručne, ale je to dosť náročné na čas, pretože budete musieť manuálne vypočítať veľkosť okraja tabuľky v závislosti od dĺžky textových polí. Je oveľa ľahšie používať hotový skript. Páčila sa mi hotová funkcia v galérii Technet Vytvorte farebnú funkciu ponuky PowerShell (https://gallery.technet.microsoft.com/scriptcenter/Create-colorful-PowerShell-8689c5b2), ktorý má všetky potrebné funkcie. Uložte funkčný kód do súboru s názvom color_menu.psm1 a importovať do relácie PoSh:
Importný modul C: \ PS \ color_menu.psm1

Funkcia vykresľovania farieb sa nazýva takto:

CreateMenu - Názov „Windows Update Script“ -MenuItems „Spustenie služby Windows Update“, „Zastavenie služby Windows Update“, „Exit“ -TitleColor Red -LineColor Azúrová -MenuItemColor Yellow

Takže za pár minút sme vytvorili pekné farebné menu pre náš skript PowerShell. V budúcnosti bude môcť tento skript pohodlne používať nielen jeho tvorca, ale aj bežní používatelia.