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