PowerShell – 10.1 – Komplexe Parameter

Save page

Es gibt noch eine weitere, etwas komplexere Methode Parameter in einem Script zu definieren. Anstatt einfach in der Funktion Param die Variablen zu definieren, kann man mit dieser Variante auch die benötigte Reihenfolge der Verbalen festlegen und ob dieser Wert zwingend notwendig ist. Dazu wird wie gewohnt der Param-Block geschrieben. Neu ist in dieser Variante nur, dass vor der Definition der Variable wie beispielsweise [string]$EingabeString, noch einmal Parameter mit bestimmten Eigenschaften in eckige Klammern geschrieben wird. Dies sieht wie folgt aus  [Parameter (Mandatory, Position)]. Hier wird für den folgenden Parameter definiert, ob dieser zwingen angegeben werden muss und in welcher Reihenfolge er erscheinen soll.

Eigenschaften des Parameters

Mittels Mandatory (dt. Pflichtangabe), eine Switch-Eigenschaft wird festgelegt, ob der Parameter zwingend angegeben werden muss. Mit der Eigenschaft Position kann die Stelle des Parameters angeben werden, wann dieser am Script angefügt werden soll, diese Angabe ist optional. Im Beispiel wird nur ein Parameter gewünscht. Dieser muss angeben werden und an Position eins hinter dem Script stehen.

Wie im Bild deutlich wird, wird man beim Starten des Scriptes aufgefordert den Benutzernamen anzugeben, da dieser notwendig für die weitere Ausführung des Scriptes  ist. Hängt man den Parameter wie gewohnt einfach  an, so fragt das Script diesen Parameter nicht ab.

Parameter eingeben

Möchte man mehrere Parameter vordefinieren, so müssen diese mit einem Komma separiert werden. Im nächsten Script muss der Benutzername und das Alter angeben werden. Die Postleitzahl ist hingegen keine Pflichtangabe.

Dem entsprechend wird die Postleitzahl beim Starten des Scriptes ohne die Angabe von Parametern nicht mit aufgeführt.

Parameter angeben

Soll dennoch die Postleitzahl mit angegeben werden muss dies dem Script als Parameter mit übergeben werden. Anschließend erfolgt die Aufforderung „Postleitzahl bitte eingeben“.

Parameter angeben

Die Variable $PLZ ist durch die Angabe des Switch-Parameter -PLZ nun $True, somit spring das Script in die Else-Abfrage.

So viel zu den erweiterten Parametern.

rewe

 

Kommentar verfassen