品目,単価,個数
りんご,98,10
みかん,30,20
キウイ,78,30
このCSVを読み込んで表示するバッチは以下のようになる。
for /f "skip=1 tokens=1,2,3* delims=," %%i in (data.csv) do ( echo 品目=%%i 単価=%%j 個数=%%k )このバッチはCSVファイル
data.csv
を開き各行をを順次for文で処理する。
for文にオプションskip=1
を付け1行目のヘッダ行は無視するようにする。
また、列が3つあるのでtokens=1,2,3*
を指定している。このとき読み込んだ列はそれぞれ変数%%i
, %%j
, %%k
に入る。for文に指定しているのは%%i
だけだが、forの仕様としてi,j,k...のアルファベット順の変数に列の値が自動で入る。
列の区切り文字はdelims=,
オプションで指定する。
このバッチで先のCSVファイルを読み込むと次のような感じになる。
C:\Temp>readcsv.bat
品目=りんご 単価=98 個数=10
品目=みかん 単価=30 個数=20
品目=キウイ 単価=78 個数=30
データ中にカンマが入っているとそこが区切りと認識されるのでこの方法ではうまく動かないが、 簡単にCSVファイルを処理したい場合は十分役立つのではと思う。