【Windowsバッチファイル(.bat)】CSVファイルを読み込む方法


この記事はプロモーションを含みます。

Windows

ホーム > コマンドプロンプト・バッチファイル リファレンス

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ファイルを書き出す方法

コメント

タイトルとURLをコピーしました