PowerShellの配列の初期化方法を忘れてしまいがちです。
よく使う事例と合わせてまとめてみました。
よく使う事例と合わせてまとめてみました。
要素に追加できる型
混在させるかどうかはケースバイケースですが、基本的に混在させないほうが吉
配列の定義と初期化
要素無しで初期化
$array = @()
文字列で初期化
$array = @("A", "B")
$array = @("A"; "B")
区切り文字は,
または;
ということはスクリプト(.ps1)であれば改行もいけるはず。
$array = @(
'aaa'
'bbb'
)
配列の要素数を取得
$array.Length
$array.Count
配列の要素を取得
n番目の要素にアクセス。
$array[0]
すべての要素にアクセスするサンプル1
forを使った例
for($i=0;$i < $array.Length;$i++)
{
$array[$i]
}
要素の取得だけではなく代入もできます。インデックスが必要です。
すべての要素にアクセスするサンプル2
PowerShellらしくForeach-Objectコマンドレットを使った例
$array | Foreach-Object { $_ }
シンプルに各要素を取得することはできますが、代入はできないはず。
配列のスライス
PowerShell配列を連番で初期化とスライス
スクリプトで連番の配列を使う場面があります。個人的にはforで変数を最大値になるまで加算するループを連番の配列をforeachで回すような記述に置き換えると、変数の加算や終了条件を省略できるのでのループ処理をシンプルにすることが出来ます。 ...
配列に要素が存在するか確認
$array.Contains("A")
配列の要素のインデックスを取得
$array.IndexOf("1")
存在しない場合-1が返る
配列の要素を末尾に追加
$array += "C"
配列同士の結合
$array3 = $array + $array2
新しい配列を作成
配列の要素を先頭に追加
$array = @("D") + $array
配列の要素を削除
$array = $array[0..1] + $array[3..4]
Foreach-Objectを使って疑似的に要素を削除(配列の再作成)
$array = $array | Foreach-Object -begin{$i=0} -process { if($i -ne 2){$_}; $i++ }
配列の要素の並べ替え
$array = $array | sort
配列をテキストファイルとして保存
$array | Out-File array.txt
$array | Set-Content array.txt
テキストファイルから配列を生成
$array = Get-Content array.txt
コメント