PowerShell Hashtable

Wer zu einem Array auch bestimmte Werte speichern will, stößt mit Arrays an die Grenzen. Eine Hashtable ist ähnlich einem Array, speichert aber für jeden Eintrag einen Wert. (ähnlich dem vbscript: Dictionary)  

Hashtable anlegen

In folgendem Beispiel lege ich eine Hastable mit einigen Einträgen und deren Werten an:

$hashtable = @{"Eintrag1" = "Wertvon1"; "Eintrag2" = "Wertvon2"; Eintrag3 = "Wertvon3"}

Ausgabe:

PS C:\Users\username> $hashtable = @{"Eintrag1" = "Wertvon1"; "Eintrag2" = "Wertvon2"; Eintrag3 = "Wertvon3"}
PS C:\Users\username> $hashtable

Name Value
---- -----
Eintrag3 Wertvon3
Eintrag2 Wertvon2
Eintrag1 Wertvon1

zusätzliche Einträge

können mit folgendem Befehl hinzugefügt werden:

$hashtable.Add("zusätzlicher Eintrag", "noch ein Wert")

Ausgabe:

PS C:\Users\username> $hashtable.Add("zusätzlicher Eintrag", "noch ein Wert")
PS C:\Users\username> $hashtable

Name Value
---- -----
Eintrag3 Wertvon3
zusätzlicher Eintrag noch ein Wert
Eintrag2 Wertvon2
Eintrag1 Wertvon1

Einträge entfernen:

$hashtable.Remove("Eintrag2")

Ausgabe:

PS C:\Users\username> $hashtable.Remove("Eintrag2")
PS C:\Users\username> $hashtable

Name Value
---- -----
Eintrag3 Wertvon3
zusätzlicher Eintrag noch ein Wert
Eintrag1 Wertvon1

Einträge ändern:

$hashtable.Set_Item("Eintrag3", "Wert für Eintrag3 geändert")

Ausgabe:

PS C:\Users\username> $hashtable.Set_Item("Eintrag3", "Wert für Eintrag3 geändert")
PS C:\Users\username> $hashtable

Name Value
---- -----
Eintrag3 Wert für Eintrag3 geändert
zusätzlicher Eintrag noch ein Wert
Eintrag1 Wertvon1

Eintrag auslesen

$hashtable.Get_Item("Eintrag3")

Ausgabe

S C:\Users\username> $hashtable.Get_Item("Eintrag3")
Wert für Eintrag3 geändert

Testen ob ein Eintrag vorhanden ist

$hashtable.ContainsKey("Eintrag3")

Ausgabe

PS C:\Users\username> $hashtable.ContainsKey("Eintrag3")
True

Testen ob ein bestimmter Wert vorhanden ist

$hashtable.ContainsValue("Wert für Eintrag3 geändert")

 Ausgabe

PS C:\Users\username> $hashtable.ContainsValue("Wert für Eintrag3 geändert")
True

Hashtable als Object-Array:Pipe

Zur Weiterverwendung als Object-Array, z.B. um dieses über eine Pipe weiterzuverarbeiten wird Methode GetEnumerator benötigt

$hashtable.GetEnumerator() | Sort-Object Name

 Ausgabe

PS C:\Users\username> $hashtable.GetEnumerator() | Sort-Object Name

Name Value
---- -----
Eintrag1 Wertvon1
Eintrag3 Wert für Eintrag3 geändert
zusätzlicher Eintrag noch ein Wert
positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!


Top-Artikel in diesem Bereich

Preview PowerShell Loops und Array

PowerShell Loops und Array

geändert: 11.11.2020 von Bernhard (Erstveröffentlichung: 21.03.2013)

Ein Array speichert mehrere Werte, ähnlich einer 2 spaltigen Tabelle. ... weiterlesen

Preview Windows PowerShell Skript erstellen und ausführen

Windows PowerShell Skript erstellen und ausführen

geändert: 08.09.2021 von Bernhard (Erstveröffentlichung: 28.11.2012)

Ganz einfach erklärt: Ein PowerShell-Skript ist eine Textdatei mit einer Reihe von PowerShell-Befehlen. Als PowerShell Skript versteht man eine Datei mit der Endung .ps1. Die Skriptdatei kann eine Sammlung von Befehlen, Funktionen oder Cmdlets enthalten. ... weiterlesen

Preview Windows PowerShell Befehle: commands im Überblick

Windows PowerShell Befehle: commands im Überblick

geändert: 12.09.2017 von Bernhard (Erstveröffentlichung: 16.11.2011)

die verfügbaren PowerShell Befehle können mit dem Befehl: ... weiterlesen


Fragen / Kommentare