3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(バッチ)設定ファイルを読み込む

バッチファイルで処理するときに、設定ファイルから1行ずつ読み込みたいという時があります。

DOSコマンドのFOR文でできるようです。 例えばこんな感じ。

FOR /F  %%A IN (a.txt) DO (
   @ECHO %%A
)

↑a.txtのファイルを読み込みます。 区切り文字は指定しないと半角スペース、全角スペース、タブとなります。 %%Aで一つ目のエントリが取得できます。

FOR /F "tokens=1,3 delims=," %%A IN (a.txt) DO (
   @ECHO %%A %%B
)

↑各行の1,3番目をカンマ区切りで読み込み、出力します。 (delimsで区切り文字を指定、tokensでどの列を読み込むか指定します)

FOR /F "tokens=1-3 delims=/" %%A IN (a.txt) DO (
   @ECHO %%A %%B %%C
)

↑各行の1,2,3番目を/区切りで読み込み、出力します。

FOR /F "tokens=1-3 delims=/," %%A IN (a.txt) DO (
   @ECHO %%A %%B %%C
)

↑各行の1,2,3番目を/とカンマ区切りで読み込み、出力します。

FOR /F "tokens=*" %%A IN (a.txt) DO (
   @ECHO %%A 
)

↑区切らず1行全部読み込みます。(空行は無視)

参考:
memo: Windows バッチファイル : ファイルの内容を読み込みたい
memo: Windows バッチファイル : 任意の項目数の CSV ファイルの内容を読み込みたい
バッチファイルでファイルを読む方法(その2): Windows Script Programming
<連載:Windows 2000コマンドライン徹底活用 第8回 forコマンド(その2) -- 2.ファイル解析による繰り返し処理/a>