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