PowerShellでCSVファイルの読み書き

コンピュータ
Import-CsvExport-CSVを試してみました。

CSVファイルのサンプルデータ

文字コード:UTF8、改行:CRLF、BOM:無し

"ヘッダー1","ヘッダー2","ヘッダー3"
a,1,2
b,3,4
c,5,6

スクリプト

# 
# CSVファイルの読み書きのサンプル
# 

$in_path = "H:\script\csv-sample-in.csv"
$ex_path = "H:\script\csv-sample-ex.csv"

# 読み込み(インポート)
$incsv = Import-Csv -Path $in_path -Encoding UTF8 # -Header <string[]> ヘッダの追加 -Delimiter  区切り文字を指定
$incsv | % {
$_
}

# 出力用の配列を複製
$excsv = @()
$incsv | % {
$rec = New-Object psobject -Property @{"ヘッダー1"=$_.ヘッダー1;"ヘッダー2"=$_.ヘッダー2;"ヘッダー3"=$_.ヘッダー3}
$excsv = $excsv + $rec
}
# CSVのヘッダー(項目名)に日本語は…


# 一件追加してみる
$rec = New-Object psobject -Property @{"ヘッダー1"="d";"ヘッダー2"=7;"ヘッダー3"=8}
$excsv = $excsv + $rec

# 書き込み(エクスポート)
$excsv | Export-CSV -Path $ex_path -Encoding UTF8 -NoTypeInformation 

CSVファイルのエクスポートの結果

文字コード:UTF8、改行:CRLF、BOM:無し

"ヘッダー1","ヘッダー3","ヘッダー2"
"a","2","1"
"b","4","3"
"c","6","5"
"d","8","7"

感想

既に存在するCSVファイルを読み込み1件追加して出力するスクリプトのつもりです。

コメント