※この記事は「2021年12月25日」に更新しました。
PowerShell(パワーシェル)講座です。
前回は、配列について紹介しました。
第5回目は、CSVデータ入出力について。
環境は、Windows 10(64bit)、PowerShell 6.1.2 です。

CSVデータとは
CSVデータとは、コンマで区切られた非常にシンプルなデータ形式です。
データ交換用としては、古くから利用されている汎用的なものです。
年賀状ソフトの住所録を移行したことがある方は、聞いたことがあるのではないでしょうか?
年賀状ソフトが異なるとファイル形式が違うため、移行が本来なら難しいわけです。
しかし、CSVファイルに一度変換して、新しいソフトにそれぞれの項目を関連付けて、読み込むことで移行できるわけです。
CSVファイルは、Excel でも読み込むことができるので簡易データベースとしても利用できます。
オブジェクトを CSVデータに変換
まずは、前回利用した、連想配列でカスタムオブジェクトをつくります。
$a = [PSCustomObject]@{名前 = "ぱそた"; 性別 = "男"; 得意な言語 = "PHP"}, [PSCustomObject]@{名前 = "あどみん"; 性別 = "女"; 得意な言語 = "なし"}, [PSCustomObject]@{名前 = "じょん"; 性別 = "男"; 得意な言語 = "C言語"}
次に CSVデータに変換していきます。
オブジェクトを CSV に変換するには、ConvertTo-Csv を使います(コマンドレット)。
$b = $a | ConvertTo-Csv
ちなみに | は、パイプというものです。
実行結果を受け渡すことができます。
PowerShell の最大の特徴としてオブジェクトをパイプできるという利点がありましたが、今回が正にそれです。
実行結果は下記の通りです。

CSVデータをオブジェクトに変換
今度は逆に CSVデータをオブジェクトに変換します。
ConvertFrom-Csv を使います。
$c = $b | ConvertFrom-Csv
練習なんで、適当な変数名でやってますが、実際はもっとわかりやすくした方が良いです。
実行結果は、下記の通りです。

CSVファイルに書き出す
オブジェクトを CSVファイルとして書き出すことも可能です。
一番最初に生成したカスタムオブジェクト($a)を使います。
$a | Export-Csv -Path sample.csv
実行するとカレントディレクトリに sample.csv が生成されるはずです。
CSVファイルを読み込む
続いて、CSVファイルを読み込んで、変数に格納します。
$d = Import-Csv -Path ./sample.csv
実行結果は、下記の通りです。

最後に
いかがでしょうか。
今回は、CSVデータ入出力について、解説しました。
次回は、オブジェクト操作について紹介します。
パイプを上手く活用できるように練習していきます。