このページ

PowerShell で配列を作成して使用する方法



変数は、ほぼすべてのプログラミング言語において最も基本的なデータ構造です。しかし、正直なところ、1つの変数だけでは十分ではないことがよくあります。特に複雑な処理を扱う場合はなおさらです。そこで登場するのが配列です。C++、Python、PowerShellなど、あらゆる言語で、配列は何らかの形で使われています。しかし、PowerShellの配列は実際にはどのように機能するのでしょうか?どのような構文なのでしょうか?そして、もっと重要なのは、どうすれば混乱せずに使えるのでしょうか?さあ、詳しく見ていきましょう。

PowerShell 配列 101

基本的に、配列とは変数をグループ化した集合体です。個々の変数をいくつも扱う代わりに、関連するデータを1つのコンテナにまとめ、各要素に0から始まる番号を付けます。大量のデータを一度に管理する際に非常に便利です。Windows PowerShellでは、配列の作成は簡単です。

変数は$記号で始まります。例えば、$prime = 13は数値だけを保持します。しかし、配列を作成したい場合は、カンマで区切って複数の値を代入できます。$week = "Monday", "Tuesday", "Wednesday"簡単ですね。それでも、明示的に記述したい人もいるので、次のように@記号と括弧を使います。

$week = @("Monday", "Tuesday", "Wednesday")

これは、コマンドの出力を扱うときや、それが単一の値なのか配列なのかを間違えたくないときに特に便利です。ちなみに、0から9のような数値の範囲が必要な場合は、次のようにします。

$digits = 0..9

0から9までの数字の配列を作成します。空の配列を初期化する場合は、次のようにします。

$values = @()

これは後で追加できる白紙の状態です。ネストがお好きなら、配列に他の配列を保持することも可能です。

$coordinates = @( (5, 10, 23), (11, 7, 16) )

念のためお知らせしますが、ネストはすぐに混乱を招く可能性があるため、経験豊富な方以外は控えめに使用してください。PowerShellの配列は柔軟性が高く、さまざまな型を混在させることができますが、特定のデータ型のみに制限したい場合は、次のようにします。

[int[]] $numbers = 2, 3, 4, 5

こうすることで、数値を入れるべき場所に誤って文字列を入れてしまうことがなくなり、後々面倒な問題を引き起こすこともありません。型に注意しないと、奇妙なバグが発生しやすいからです。

配列データへのアクセスと変更

では、配列を取得したら、そこからどうやって要素を取り出すのでしょうか?簡単です。インデックスを使えばいいのです。配列のインデックスは0から始まることを覚えておいてください。つまり、6番目の要素を取り出すには です$numbers[5]。例えば、

$var = $numbers[5]

インデックス5の値を新しい変数にコピーします。配列 から「Wednesday」を読み取りたいですか$days? と入力するだけです$days[2]。0から始まるカウントのため、最初の項目は となることに注意してください$days[0]

配列の値をリアルタイムで変更することも可能です。例えば、2番目の要素を0に設定するには、次のようにします。

$numbers[1] = 0

簡単です。既存の配列に新しい要素を追加するには、 を使って追加するだけです+=。例えば、は配列$names += "Johny"の末尾に「Johny」を追加します$names。複数の要素を一度に追加するには、 を使用します$names += "Charlie", "Liam", "Teresa"。別の配列、例えば がある場合は、 を使ってそれらを結合$surnamesできます。$names += $surnames

配列のループ処理を簡単にする

各要素に手動でアクセスするのは面倒な場合があります。特に、すべての要素を使って何かを行いたい場合などはなおさらです。PowerShellには便利なオプションがいくつかあります。従来のforループは次のようになります。

for ($i = 0; $i -lt $days. Length; $i++) { $days[$i] }

これにより、各項目を順に処理し、指定した処理を実行します。foreachループさらに使いやすく、エラーも発生しにくくなります。

foreach ($day in $days) { $day }

実際、セットアップによっては最初はforループが必要になるかもしれませんが、 foreachに慣れてしまえば、あとはスムーズに進みます。

PowerShell 配列はいつ役立つのでしょうか?

配列を使わずにスクリプトを作成する場合、変数の混乱が大きな悩みの種となります。固有の変数名が大量に存在し、忘れやすく、誤って参照してしまう可能性があります。配列を使用すると、関連するすべてのデータが1つの管理しやすいコンテナーにまとめられるため、バグが減り、スクリプトが整理されます。これは特に自動化において顕著です。コマンドレットの出力はオブジェクトであり、どこかに保存する必要があるため、配列はまさにそのような用途に最適です。PowerShellオブジェクトなどのコマンドレットからデータを取得する場合は、それらを配列にパイプすることで、より効率的に処理できることを覚えておいてください。

ええ、最初はちょっと奇妙に感じるかもしれませんが、配列を効果的に使い始めると、スクリプトはよりクリーンになり、メンテナンスも容易になります。ただし、型とインデックスには注意してください。PowerShell は必要以上に複雑にしてしまうからです。



この記事は役に立ちましたか?