PowerShell: 配列の要素の参照、値の代入
PowerShellで配列の各要素を参照する方法と、 各要素に値を代入する方法を紹介します。 どちらも配列名の後に[インデックス]を付けて要素を指定します。
書式
配列名[インデックス]
要素の参照
配列の要素を参照する場合、 配列名[インデックス]と記述します。 次のコードではインデックスに1を指定して、 2番目の要素を表示しています。
$arr = "a", "b", "c" # 要素の参照 Write-Host $arr[1] # b
配列の要素数以上のインデックスを指定した場合、 エラーにはならずに「Null」となります。
次のコードではインデックスに要素数以上の数「4」を指定して、 その値がNullかどうかを判定しています。 「Write-Host $arr[4]」はNullなので何も表示されていません。
$arr = "a", "b", "c" Write-Host $arr Write-Host $arr[4] if ($arr[4] -eq $null){ Write-Host "Nullです" } else { Write-Host "Nullではありません" } # 実行結果 a b c Nullです
値を代入
配列の各要素に値を代入する場合は配列名[インデックス] を代入演算子の左側(左辺)に記述します。
次のコードでは2番目の要素に"x"を代入しています。
$arr = "a", "b", "c" # 代入 $arr[1] = "x" Write-Host $arr # a x c
配列の要素数以上のインデックスを指定した場合は エラーが発生します。 参照の場合はNullが戻りましたが、 代入の場合はエラーとなります。
次のコードは要素数以上のインデックス「4」を指定して 値を代入しょうとして、エラーが発生しています。
$arr = "a", "b", "c" $arr[4] = "x" # エラー Write-Host $arr # エラーメッセージ Index was outside the bounds of the array.
(まとめ記事: PowerShell 配列)