Wanneer je veel gebruikt maakt van Powershell scripts kan het handig zijn deze via een menu aan te roepen in plaats van deze steeds handmatig te starten. Dit artikel laat enkele mogelijkheden zien voor het maken van een simpel menu.

Menu functie

We beginnen met het maken van een functie Display-menu. Deze functie laat het menu met de opties die gekozen kunnen worden zien. Hierna defineren we de variabelen die we gaan gebruiken in de functie. In ons geval is dit alleen de string $Title. Deze bevat de naam van het menu.
Om het menu in leeg venster te kunnen weergeven gebruiken we Clear-Host.
Tot slot gebruiken Write-Host om de tekst met de menu keuzes weer te geven.

function Display-Menu { 
  param (     
    [string]$Title = "Menu"   
  )  

  Clear-Host  
  Write-Host "================ $Title ================"   
  Write-Host "1: Functie 1"   
  Write-Host "2: Functie 2"   
  Write-Host "3: Functie 3"   
  Write-Host "Q: Typ 'Q' om te stoppen."   
  Write-Host "========================================`n" 
}

Menu weergeven

Nu we de functie hebben gemaakt die het menu bevat gaan we deze oproepen in het script. Dit doen we door de functie naam in te vullen. Door -Title achter de functie te gebruiken, kunnen we de standaard waarde van de $Title overschrijven met een nieuwe titel voor het menu.

Display-Menu –Title 'Menu opties'

Menu keuze opties

Aan enkel een menu hebben we niets zolang we geen keuze kunnen invoeren. De variabele $keuze gebruiken we voor het opvragen van deze keuze. Hier gebruiken we de functie Read-Host zodat we een keuze kunnen invoeren. De functie switch bevat de keuzes welke gemaakt kunnen worden. De keuzes roepen vervolgens de functie aan die het script uitvoert voor de betreffende keuze.

$keuze = Read-Host "Maak een keuze"

switch ($keuze) {
  '1' {Optie1} 
  '2' {Optie2} 
  '3' {Optie3} 
  'q' {return}
}

Menu functies

Tot slot dienen de functies aangemaakt te worden welke via de ingevoerde keuze worden aangeroepen. In dit voorbeeld maken we eerst het scherm leeg met de functie Clear-Host en vervolgens een Write-Host die onze keuze weergeeft.

function Optie1 {

  Clear-Host
  Write-Host "Functie: 1"
}

function Optie2 {

  Clear-Host
  Write-Host "Functie: 2"
}

function Optie3 {

  Clear-Host
  Write-Host "Functie: 3"
}

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *