ソースコード
次のようなCSVを読み込む場合。
100,apple,foo 50,orange,bar 320,grape,baz
ソース:
@echo off setlocal for /f "tokens=1,2,3 delims=," %%i in (1.csv) do call :sub %%j,%%i,%%k goto :EOF :sub echo [name=%1, value=%2, id=%3] goto :EOF
実行結果
[name=apple, value=100, id=foo] [name=orange, value=50, id=bar] [name=grape, value=320, id=baz]
解説
- 「call :ラベル」でサブルーチンを呼べる。サブルーチンの最後では「goto :EOF」をする。VBでのreturnに相当。
- 「tokens=1,2,3」は1番目から3番目のトークン(データ)を使うことを意味している。順不同なため「tokens=3,1,2」としても結果は同じ。データは%iから順に入るので、%i/%j/%kが対応する。
- 「delims=,」はデリミタがコンマであることを指定している。複雑なCSVには対応できないので注意。