PowershellProgram学習

PowerShellで配列の値を文字列結合する

Powershell

PowerShellで配列として格納している値をひとつの文字列として結合する場合に利用する自作関数について紹介します。
表現として難しいですが、例えば以下のような配列があったとします。

$array[0] = "あああ"
$array[1] = "いいい"
$array[2] = ""
$array[3] = "ううう"

これらの配列の値を改行コードをつけながら結合します。
値が空の場合はスキップします。
結果としては以下になります。

あああ
いいい
ううう

使い方(例)

以下が実際の関数コードと使い方についての例となります。
配列内の値をソートしながら、改行コード(Windowsなので/r/n)を追加して結合してます。

私が使う場面としてはCSVファイルなどを読み込んだ際にデータが改行を含んでいて結合したい場合に使ってます。

function ExpandArray($array){
    $string=""
    foreach($elem in $array | Sort-Object) {
        if($elem){
            $string += $elem + "`r`n"
        }
    }
    return $string
}
$array = @("aaa","iii","","uuu")

Write-Host (ExpandArray $array)

実行した結果は以下となります。

改行コードを含んだこの値が一つの文字列変数に格納されます。空の要素はスキップされてます。

aaa
iii
uuu

PowerShellの学習におすすめの書籍

PowerShellクックブック [オライリー]

私も実際に持っていますが、間違いなくこの本はオススメできます。オライリーシリーズなので定評があるというだけでなく,実際に良書だと思います。

オライリー社の書籍というと初心者にはとっつきにくイメージがありますが、この書籍に掲載されている例は基本的なものが多く,入門者が使い方を覚えるためには丁度よいレベルの本だと感じます。

今回は以上となります。

コメント