PowerShellのハッシュテーブルとオブジェクト

PowerShellのハッシュテーブルは

#単一行
$hashTable = @{ 'Key1' = 'Value1', 'Key2' = 'Value2'}

#複数行
$hashTable = @{
    'Key1' = 'Value1'
    'Key2' = 'Value2'
}

といった形で作成できる。 要素へのアクセスは

# インデクサ
$hashTable['Key1']

#オブジェクト風
$hashTable.Key1

のように、通常のインデクサでの取得のほかに、オブジェクトのプロパティっぽく記述できる。PowerShell ISEなどで.を入力すると、インテリセンスの候補にも要素が表示される。

また、ハッシュテーブルをもとにオブジェクトを生成することもできる。というより、既存の型にハッシュテーブルを元にしたプロパティを生やしたようなオブジェクトを生成できる。

$obj = New-Object -TypeName PSObject -Property $hashTable

$obj.Key1 # -eq $hashTable.Key1

ハッシュテーブルでもオブジェクト風要素アクセスができるのであまり使いどころは思い浮かばないが、面白い機能だと思う。