CSVファイルを取り込んで番号を振って出力するスクリプト 04回目 WindowsPowerShell お勉強

2020年2月26日

今回はCSVファイルを編集するスクリプトです。

#csvファイルを取り込み
$csv = Import-Csv .\CSV\test.csv -Encoding Default

#内容変更
for ($i=0; $i -lt $csv.Length; $i++){
$csv[$i].管理番号 = “{0:000}” -f $i
}

#csv出力
$csv | Export-Csv .\CSV2\test.csv -Encoding Default -NoTypeInformation

Import-Csvでファイルを取り込みます。元のファイルの原因か「-Encoding Default」を付けないと文字化けしました。

for文で「管理番号」列に番号を振りました。このまま$iで振ってもいいのですが、「001」「002」と文字列にするために、一度”{0:000}”(数列を000形式にしなさい)というのを組み込んで入れました。

最後にExport-Csvで出力します。この時に -NoTypeInformation を付けないと頭に

「#TYPE System.Management.Automation.PSCustomObject」

とプリントされてしまうのでつけました。

CSVは勝手に頭の一列をヘッダとしてしまうようです。なので、ヘッダがないデータをどうやって取り込むのかもう少し勉強します。

やり方はわかっていて、事前にヘッダを作っておけばいいのですが、逆に言えばヘッダを作らないと取り込めないようです。

汎用的にみればヘッダがある方が何列あっても対処しやすいのはわかるのですが、古いシステムだとヘッダが無いものも多いので考えてみます。