※この記事は「2023年8月1日」に更新しました。
PowerShell(パワーシェル)講座です。
環境は、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データをオブジェクトに変換します。
$c = $b | ConvertFrom-Csv
練習なんで、適当な変数名でやってます。
実際は、もっとわかりやすくした方が良いです。
実行結果は、下記の通りです。
CSVファイルに書き出す
オブジェクトを CSVファイルとして書き出すことも可能です。
一番最初に生成したカスタムオブジェクト($a)を使います。
$a | Export-Csv -Path sample.csv
実行すると、カレントディレクトリに sample.csv が生成されるはずです。
CSVファイルを読み込む
$d = Import-Csv -Path ./sample.csv
実行結果は、下記の通りです。
最後に
今回は、CSVデータ入出力について、解説しました。
前回は、配列について紹介しました。
次回は、オブジェクト操作について紹介します。
パイプを上手く活用できるように練習していきます。