Script: Dynamisch Parameter zu einem Befehl hinzufügen [PowerShell]

Hallo,

um dynamisch Parameter zu einem PowerShell-Befehl hinzuzufügen, kann man mit Splatting arbeiten.
Das heißt, alle Parameter die an einen Befehl übergeben werden sollen, werden in einem Splat (Hashtable) gespeichert und der Befehl dann im Anschluss mit dem Parameter-Splat aufgerufen.
Als Beispiel nehmen wir nun den Befehl:

Nun wollen wir den Pfad angeben und welchen Dateitypen wir suchen wollen. Der „normale“ Befehl dafür würde so aussehen:

Wir suchen alle Text-Dateien im Verzeichnis C:\Windows\Logs.

In einem Splat würde dies nun wie folgt aussehen:

Und der Befehl würde so aufgerufen werden:

Nun kommen wir aber zum Vorteil von Splat, wir können dynamisch weitere Parameter mit Werten hinzufügen.
Beispielsweise gibt der User erst beim Aufrufen einer Funktion an, dass er es toll finden würde, wenn Dateien ausgeschlossen werden würden, die mit A anfangen.
Das heißt in einer Beispiel-Funktion, dass ein Parameter abgefragt wird und nur wenn dieser einen Wert enthält der Parameter ergänzt wird:

Wenn die Funktion SuperSearchTXTFile nun ohne -ExcludeLetter ‚A‘ aufgerufen werden würde, so würden wieder alle .txt-Dateien (auch die mit A) gefunden werden.

Ich hoffe ich konnte euch das Splatting im allgemeinen und das dynamisch anpassen eben jener etwas verständlicher machen.

In dem Sinne: Frohes dynamisch sein.

 

 

Schreibe einen Kommentar

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

CommentLuv