フォルダ内にあるインプットファイル全てから計算条件を読み込んで実行するバッチファイル
定時デバッグ用に作成したバッチファイルを以下に示す。
以下の記事で示したバッチファイルの亜種となっている。
chicagopile1-75.hatenablog.com
【実行時の状況】
・test.exeは引数を2つとる実行ファイル
・インプットファイル全てはinput*.txtという名称でinput0~9が存在
・インプットファイル内にはtest.exeに与える引数が格納されている
・インプットファイル内はにはタブ又はスペース区切り
・呼び出し先のバッチファイル名はson.bat
・インプットファイル一覧はlist.txtとして保存される
【実行後の状況】
・年月日/input*_output*.txt に結果が出力される
まずは呼び出し元のバッチファイルを以下に示す。
@echo off @setlocal enabledelayedexpansion dir input*.txt/b > list.txt for /f %%a in (list.txt) do ( call son.bat %%a ) pause
ここから下がson.batであり、呼び出し先のバッチファイル。
@echo off @setlocal enabledelayedexpansion rem ***************************************************************** set /a num=0 set F=outputN.txt set InputName=%1 call :Make_Dir for /f "tokens=1,2" %%a in (%1) do ( set para1=%%a set para2=%%b call :DoCalc set /a num =!num! + 1 ) goto :END rem ***************************************************************** :DoCalc cd %FILE_PATH% copy ..\test.exe test.exe echo execute_!num! echo para1:%para1% para2:%para2% echo para1:%para1% para2:%para2% >%InputName:~-0,6%_%F:N=!num!% call test %para1% %para2%>> %InputName:~-0,6%_%F:N=!num!% cd.. :Make_Dir set FILE_PATH=%DATE:~-10,4%%DATE:~-5,2%%DATE:~-2% call :CHECK_FOLDER_EXIST %FILE_PATH% goto :END :CHECK_FOLDER_EXIST if not exist %FILE_PATH% ( mkdir %FILE_PATH% ) goto :END :END