ホーム > コマンドプロンプト・バッチファイル リファレンス
Windowsのバッチで、CSV形式のファイルを読み込む方法を解説します。
はじめに
本記事では、バッチファイルでCSVファイルを読み込む方法を説明します。
以下は、サンプルで読み込むCSVファイルです。
名前,年齢,住所 山田,11,大阪府 田中,22,東京都 山本,33,北海道
CSVファイルを読み込む方法
CSVファイルを読み込むサンプルコードです。
ポイントは6行目にあるfor文のオプション「delims」と「tokens」です。
delimsは読み込むファイルの区切り文字を指定します。
今回は、CSVを読み込むので、「,(カンマ)」を指定しています。
tokensは読み込むカラムを指定します。
読み込むCSVのカラム数は3なので、「1-3」(1から3カラムまで)を指定しています。
@echo off
set csv=sample.csv
set count=0
for /f "delims=, tokens=1-3" %%i in (%csv%) do (
set /a count+=1
call echo 【%%count%%行目-カラム1】%%i
call echo 【%%count%%行目-カラム2】%%j
call echo 【%%count%%行目-カラム3】%%k
echo.
)
pause
サンプルの実行結果です。
このサンプルでは、ヘッダも含めて読み込んでいるため、
次項でヘッダを含めずに読み込む方法を説明します。
【1行目-カラム1】名前 【1行目-カラム2】年齢 【1行目-カラム3】住所 【2行目-カラム1】山田 【2行目-カラム2】11 【2行目-カラム3】大阪府 【3行目-カラム1】田中 【3行目-カラム2】22 【3行目-カラム3】東京都 【4行目-カラム1】山本 【4行目-カラム2】33 【4行目-カラム3】北海道 続行するには何かキーを押してください . . .
ヘッダを含めずに読み込む方法
ここでは、CSVファイルのヘッダをスキップして読み込む方法を説明します。
ポイントは6行目にあるfor文のオプション「skip」です。
skipは読み飛ばす行数を指定します。
ここでは「1」を指定しているので、1行目(ヘッダ)が無視され、2行目以降が出力されています。
@echo off
set csv=sample.csv
set count=0
for /f "skip=1 delims=, tokens=1-3" %%i in (%csv%) do (
set /a count+=1
call echo 【%%count%%行目-名前】%%i
call echo 【%%count%%行目-年齢】%%j
call echo 【%%count%%行目-住所】%%k
echo.
)
pause
サンプルの実行結果です。ヘッダが出力されなくなりました。
【1行目-名前】山田 【1行目-年齢】11 【1行目-住所】大阪府 【2行目-名前】田中 【2行目-年齢】22 【2行目-住所】東京都 【3行目-名前】山本 【3行目-年齢】33 【3行目-住所】北海道 続行するには何かキーを押してください . . .
CSVファイルを書き出す方法
リンク
コメント