Parametervalidierung per Script

Parametervalidierung ist eine sehr praktische Angelegenheit, denn sie bewirkt mit wenig Aufwand, dass ein Skript oder eine Function nicht mit unpassenden Parameterwerten aufgerufen werden kann. Die Validierung findet beim Aufruf statt, so dass if-Abfragen überflüssig werden und der Fehler bei einem unpassenden Parameterwert nicht „verschleppt“ wird und dadurch verzögert während der Ausführung des Skripts oder der Function auftritt.

Auch wenn die Schreibweise bedingt durch die ins Spiel kommenden Attribute (ein Attribut ist ein in eckige Klammern gesetzter Name, der z.B. einen Parameter um zusätzliche Informationen ergänzt) etwas „kompliziert“ wirken mag, ist der Umgang mit den Validierungsattributen sehr einfach, so dass ich diese Technik auch jenen PowerShell-Anwendern empfehle, für die Functions noch „Neuland“ sind.

Ein Validierungsattribut ist zunächst ein Name, der in eckige Klammern gesetzt wird, z.B. [ValidateRange].

Mit diesem Attribut würde überprüft werden, ob der Wert für den folgenden Parameter im angegebenen Bereich liegt. Der Bereich folgt in runde Klammern:

Mit dieser Angabe wird sichergestellt, dass der Wert des Parameters $Anzahl größer oder gleich 1 und kleiner oder gleich 10 ist. Wenn nicht, führt de Aufruf des Skripts oder Function zu einem Fehler.

In der Hilfe werden die Validierungsattribute unter „about_Functions_Advanced_Parameters“ beschrieben. Das Thema wird auch bei Durchsuchen der Hilfe per Platzhalter „ausgespuckt“:

Es gibt in der ISE auch eine Auswahlliste, die wie üblich per [String]+[Leertaste] geöffnet wird.

Auch für Parameterattribute gibt es eine Auswahlliste

Auch für Parameterattribute gibt es eine Auswahlliste

Parametervalidierung per Skript

Das folgende Beispiel zeigt eine Function mit den Parametern $StartDate und $EndDate. Durch Parametervalidierung soll sichergestellt werden, dass der Wert für $StartDate nicht in der Vergangeheit liegt und der Wert für $EndDate größer ist als der Wert für $StartDate. Das Beispiel zeigt damit auch, wie in die Parametervalidierung eines Parameters der Wert eines anderen Parameters angesprochen wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden .