LoginSignup
10
14

More than 5 years have passed since last update.

バッチファイルでターゲットを読み込む

Last updated at Posted at 2015-07-07

バッチファイルで外部ファイルに記載したターゲットリストを1行づつ読み込んでいく方法
最近バッチばかり書いているので主に備忘録
レガシーだけど実際に現役で動いてるからね・・・

bat

For /F "オプション" %%i  In (-ファイル名-) do (
  処理
)

自分が理解するために少し間違っててもイメージで書いてます。

オプション 意味 備考       
eol=     行末を意味する(Javaとかの;みたいな・・・)               
tokens=    区切ったところを変数に格納して使える1,1-2な感じで書く %%i %%j %%k とかになる
skip=     ファイルの頭を何行飛ばすか指定する       行頭って説明書いたりするし 
usebackq    ファイル名に空白や()なんかがついてる時用   ””使えるようにする     
delims=    区切り文字を指定する何にも書かないと空白とかタブ なんか最後に書かないといけないっぽい?

オプションでdelims=,とか書いておけばcsv形式のターゲットリストとかから読み込んで使える

sample
For /F "tokens=1-2 skip=1 delims=," %%i In (hogehoge.csv) do (
CALL :SAMPLE1 %%i %%j
GOTO :EOF
)
CALL :END

:SAMPLE1
何かの処理
GOTO :EOF

:END
終了処理

hogehoge.csv

No,Name
1,hogeeeee
2,fugaaaaa
3,ueeeeeee

%%i %%j に格納されるNo,NameがCALLで呼び出されるサブルーチンの第一引数、第二引数になる
つまりこの場合%%i %%jは以下と同じ意味をもつ

変数=%~1 <===> %%i
変数=%~2 <===> %%j

因みに、%~0でバッチファイルの名前を取得できる
バッチファイル自身のパスの取得は%~dp0

最近はこんなツール使ってます。
情報はエディタでリファリながら勉強してます。
バッチ用エディタ

vbsやvba、PSなんかはおいおい・・・今はバッチファイル。

10
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
14