PowerShellでCSVファイルの入力は Import-Csv で簡単にできますが、CSV ファイルの出力はカスタムオブジェクトを作る必要があります。
カスタムオブジェクトを作ると聞くとハードル高そうですが、実は簡単に作れます。
論よりコードなので、実際にカスタムオブジェクトを作ってみましょう。
# カスタムオブジェクト(要素の入れ物) $Datas = @() # カスタムオブジェクトの要素作成(その1) $Data = New-Object PSObject | Select-Object AAA, BBB, CCC # カスタムオブジェクトの要素に値を設定(その1) $Data.AAA = "Recode01-aaa" $Data.BBB = "Recode01-bbb" $Data.CCC = "Recode01-ccc" # カスタムオブジェクトに要素(その1)を追加 $Datas += $Data # カスタムオブジェクトの要素作成(その2) $Data = New-Object PSObject | Select-Object AAA, BBB, CCC # カスタムオブジェクトの要素に値を設定(その2) $Data.AAA = "Recode02-aaa" $Data.BBB = "Recode02-bbb" $Data.CCC = "Recode02-ccc" # カスタムオブジェクトに要素(その2)を追加 $Datas += $Data # カスタムオブジェクトの表示 $Datas | ft -AutoSize |
これを実行するとこんな感じになります。
|
簡単にカスタムオブジェクトを作ることが出来ました
カスタムオブジェクトが出来れば、CSV ファイルに出力するのは Export-Csv コマンドレットにカスタムオブジェクトを渡すだけです。
$OutputFilename = "c:\work\test.csv" $Datas | Export-Csv $OutputFilename -Encoding Default |
出力文字コード指定が出来るので、シフトJISで出力する場合は「-Encoding Default」を指定します。(-Encoding を省略すると UTF-16 で出力されます)
カスタムオブジェクトは、CSV 出力だけではなく、データーハンドリングに便利です。
Copyright © MURA All rights reserved.