以前、perlでスクリプトを作成していた頃、ハッシュ(連想配列)のkeyが文字列で、valueが配列(やハッシュ)という構造を良く使っていた。
最近勉強中のpowershellではどうやるのか調べたところ、perlと同じような感じで書けるようだ。以下は、keyが文字列でvalueが配列の簡単なpowershellのサンプル。
# ハッシュの宣言 $hash = @{} # ハッシュに入れる key(文字列) と value(配列) を作成 $key1 = "ax" $value1 = @("a1", "a2", "a3") $key2 = "bx" $value2 = @("b1", "b2", "b3") $key3 = "cx" $value3 = @("c1", "c2", "c3") # 上記で作成したデータをハッシュに追加 $hash[$key1] = $value1 $hash[$key2] = $value2 $hash[$key3] = $value3 # ハッシュから全データ(value)の取り出し foreach ($key in $hash.Keys) { $values = $hash[$key] foreach($value in $values){ Write-Host $value } }
上記を実行すると、以下のようにvalueの中身が全て出力される。
a1 a2 a3 b1 b2 b3 c1 c2 c3