Windows tips‎ > ‎MS-DOS, CMD‎ > ‎

バッチファイルでCSVからデータ取得

data.csvが、
-----
a001,hoge,fuga
a002,piyo,hogera
a003,xyzzy,foo
-----
と言うファイルの場合、下記batchファイルを作成瀬実行し、a002を入力すると、
Data_01=piyo
Data_02=hogera
が取得できる。

csvファイルの指定に従って、同一の処理の中のパラメータを、入力によって選択したい時に使える。

-----以下.batファイル例
@echo off
rem バッチファイルでCSVデータの先頭列が任意の値にマッチする行を検索し、
rem その行の各カラムのデータを取り出す。
echo 作業対象行のIDを入力。
set /p Target_ID=

FOR /F "delims=, tokens=1,2" %%a in (%~dp0data.csv) do (
IF "%Target_ID%"=="%%a" set Data_01=%%b
)
FOR /F "delims=, tokens=1,2,3" %%a in (%~dp0data.csv) do (
IF "%Target_ID%"=="%%a" set Data_02=%%c
)
rem ちなみに暗黙で1列目のデータ=%%a、2列目のデータ=%%b、3列目のデータ=%%c......となります。