PowerShell $args String als Hashtabelle

Vor kurzem stand ich vor der Problematik bei einem PowerShell Skript beliebige unbekannte Kommandozeilenparameter auswerten zu wollte, bei denen es sich um Key=Value Paare handelte, also eigentlich ideal für eine Hashtabelle, jedoch handelt es sich bei der PowerShell Kommandozeilenparameter $Args Variable immer um einen String. Somit war ich auf der Suche wie man diese Key=Value Paare des Strings in einen Hashtabelle gewandelt bekommen. Dies ist einfach möglich mittels dem ConvertFrom-StringData Cmdlet, hier das passende Beispiel:


# Beispiel $args String der mittels Semikolon getrennt ist und Key=Values paare beinhaltet
$args = "LicenseKey=12345-67890-ABCDEF;AddLocal=All;User=Andreas"

# Konvertierung zur Hashtabelle
$hash = ConvertFrom-StringData -StringData $args.replace(';',"`n")

# Abfrage des Hashtabelle Inhaltes (als proof)
$hash.GetEnumerator() | foreach{ write-host "$($_.name)=$($_.value)" }

Schreibe einen Kommentar

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