読者です 読者をやめる 読者になる 読者になる

PowerShellでHashTableを配列みたいにForeachやWhereする

PowerShellのHashTableの場合、そのままだとパイプラインでForeachやWhere句を通しても意図した通りの処理ができません。

PS>$hashTable = @{a=1;b=2}
PS>$hashTable | ForEach-Object{$_.Name + ":" + $_.Value}
:



GetEnumeratorで列挙用オブジェクトを取り出してからパイプラインに渡すと意図した通りに動きます。

PS>$hashTable = @{a=1;b=2}
PS>$hashTable.GetEnumerator() | ForEach-Object{$_.Name + ":" + $_.Value}
a:1
b:2

他にもこんな方法もあります。
Hashtableをforeachしても・・・ - PowerShell Scripting Weblog