PowerShell 配列の使い方のサンプル

目次

配列とは

$arr = 値1 , 値2 , 値3 

上記は複数の値を変数aに代入しています。
この変数aは配列として複数の値を持ちます。

配列の図

  • 1つの変数で複数の値を保持できます。
  • 各項目を要素(element)といいます。
  • 配列のそれぞれの値は添字(インデックス番号)でアクセスできます。上記図では[0]、[1]、[2]、[3]が添字です。
  • 添字は0から始まります。

配列を作成

カンマ区切りで配列を作成

$arr1 = "A", "B", "C"

$arr1[0] # A
$arr1[1] # B
$arr1[2] # C
$arr1[0..2] # A,B,C  範囲指定
$arr1[-1] # C  -1の場合末尾になる

(区切り)値をカンマ(,)で区切るだけで配列として認識されます。

 

@() で明示的に配列を作成

$arr2 = @("D", "E", "F") 

$arr2[0] # D
$arr2[1] # E
$arr2[2] # F 

$arr4 = @() # 空の配列を作成

 

数値の範囲指定で配列を作成

$arr3 = 1..3

$arr3[0] # 1
$arr3[1] # 2
$arr3[2] # 3

要素を追加

変数 = 変数 + 値
変数 += 値
$arr = @() # 空の配列を作成

$arr = $arr + "A"
$arr = $arr + "B"
$arr += "C"

$arr[0]  # A
$arr[1]  # B
$arr[2]  # C

3~5行目は要素を追加しています。5行目のように+=のみでも追加できます。

+での配列の要素の追加は、数千件のループの場合は動作が劇的に重くなります。

要素を取得(for文、foreach文)

$arr = "A", "B", "C" # 配列

for ($i = 0; $i -lt $arr.Length; $i++) {
  $arr[$i] # A B C
}

foreach ($str in $arr) {
  $str # A B C
}

for文は、$arr[$i]で各要素にアクセスします。
foreach文では、添字はありません。

含まれるか確認(contains)

$arr1 = "A", "B", "C" # 配列

$str1 = $arr1 -contains "B"
$str1 # True

$str2 = $arr1 -notcontains "D"
$str2 # True

 

フィルタ(Where-Object)

$arr1 = 1,2,3,4,5 # 配列

$num = $arr1 | Where-Object {$_ % 2 -eq 0}
$num # 2,4

3行目は、偶数のみ取得しています。

重複除去(Select-Object)

$arr1 = 1,2,2,2,3 # 配列

$num = $arr1 | Select-Object -Unique
$num # 1,2,3

 

昇順と降順でソート(Sort-Object)

$arr1 = 100, 2, 99 # 配列

$arr2 = $arr1 | Sort-Object

$arr2  # 2 99 100

$arr3 = $arr1 | Sort-Object -Descending

$arr3  # 100 99 2

3行目は、昇順になります。
7行目は、末尾に-Descendingをつけて降順にしています。

関連の記事

PowerShell for文 処理を繰り返すサンプル

△上に戻る