バッチファイルから外部の設定ファイル(txtやini)を読み込んで値を取得する方法は、システム管理や自動化スクリプトでよく使われます。この記事では、具体例を交えながらその手順を解説します。
設定ファイルの準備
まず、以下のような設定ファイル settings.ini を用意します。
path1=\\server001\test\
filename1=template1.xlsx path2=\\server002\test\ filename2=template2.xlsx
バッチファイルの記述
次に、バッチファイルでこの設定ファイルを読み込み、値を取得するような流れを作ります。
delims=のところで区切り文字を”=”に指定していて、「区切り文字”=”としたときの1列目が”path1″である行の2列目の値を変数path1にセットする」というやり方です。
一般的にはdelimsはカンマ等が多いと思いますが、ここでは上記のiniファイルで=を使っているため=としています。
set exist_flg=0 for /f "delims==, tokens=1,2" %%a in (%~dp0settings.ini) do (if "path1"=="%%a" set path1=%%b) for /f "delims==, tokens=1,2" %%a in (%~dp0settings.ini) do (if "filename1"=="%%a" set filename2=%%b) for /f "delims==, tokens=1,2" %%a in (%~dp0settings.ini) do (if "path2"=="%%a" set path2=%%b) for /f "delims==, tokens=1,2" %%a in (%~dp0settings.ini) do (if "filename2"=="%%a" set filename2=%%b) rem ファイル存在確認 if exist %path1%%filename1% ( echo OK ) else ( echo NG set exist_flg=1 ) if exist %path2%%filename2% ( echo OK ) else ( echo NG set exist_flg=1 ) if %exist_flg% equ 1 ( echo 不足ファイルがあるため処理を中断 pause exit ) rem Pythonスクリプトなどに値を渡す cd /d %~dp0 d:\WPy64-31050\scripts\python D:\test.py %path1%%filename1% %path2%%filename2%