Kako organizirati barvni meni v skriptu PowerShell

Razmislite o primeru organiziranja preprostega barvnega menija za PowerShell, ki uporabniku omogoča prikladno izbiro ene od razpoložljivih možnosti za izveden skript. Ta skript naj uporabniku ponuja več možnosti, nadzoruje izbrano možnost in glede na izbiro izvede nadaljnja dejanja.

Predpostavimo, da naj bi naš preprost skript uporabniku omogočil zagon ali zaustavitev določene storitve Windows.

Seznam elementov menija, ki so uporabniku ponujeni, se lahko prikaže na naslednji način:

Pišite-gostitelj '1. Zaženite storitev Windows Update «
Pišite-gostitelj '2. Ustavitev storitve Windows Update «
Piši-gostitelj '3. Izhod '

Nato uporabnika povabimo, da izbere predmet tako, da pokliče njegovo številko:

$ selected_menu_item = Host za branje 'Izberi element menija'

Nato obdelamo izbiro uporabnika s pomočjo stališča stikala:

Stikalo ($ selected_menu_item)
1 neto start wuauserv
2 neto stop wuauserv
3 Write-Host 'Exit'; izhod
privzeto Write-Host 'Nepravilen vnos' -ForegroundColor Red

Zaženite skript in preverite njegovo delovanje.

Vse deluje v redu, le pogled na meni pušča veliko želenega. Želim si nekaj bolj "pametnega" in udobnega.

Lahko poskusite ustvariti lepši meni z barvnimi naslovi, odstavki in okvirjem ročno, vendar je to precej zamudno, saj boste morali ročno izračunati velikost robne tabele, odvisno od dolžine besedilnih polj. Veliko lažje je uporabljati že pripravljen scenarij. Všeč mi je bila gotova funkcija v galeriji Technet Ustvarite barvito funkcijo menija PowerShell (https://gallery.technet.microsoft.com/scriptcenter/Create-colorful-PowerShell-8689c5b2), ki ima vso potrebno funkcijo. Funkcijsko kodo shranite v datoteko z imenom color_menu.psm1 in ga uvozite v sejo PoSh:
Uvozni modul C: \ PS \ color_menu.psm1

Funkcija risanja barv se imenuje na naslednji način:

CreateMenu -Title "Skripta za posodobitev sistema Windows" -MenuItems "Zaženite storitev Windows Update", "Ustavite storitev Windows Update", "Exit" -TitleColor Red -LineColor Cyan -MenuItemColor Yellow

Tako smo v samo nekaj minutah ustvarili prijeten barvni meni za naš skript PowerShell. V prihodnosti takšen skript ne bo mogel z udobjem uporabljati samo njegov ustvarjalec, temveč tudi običajni uporabniki.