Windowsのバッチファイル(bat)で環境によって異なる値を設定ファイルから読み込む
仕事でWindowsのバッチファイル(bat)から実行環境によって異なる値を設定ファイル(ini)に書き出して、その設定ファイルをバッチファイルから読み込んで利用しないといけない機会があったので、その時のメモです。
コード
実行ファイルを「setting.bat」、設定ファイルを「setting.ini」として作成した場合のコードは以下の通りです。
「setting.ini」
; Server
server=abcserver
; Log Directory
log_dir=log
; Log File Name
log_file=sample.log
「setting.bat」
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,* delims==" %%a in (setting.ini) do (
set %%a=%%b
)
rem 設定ファイルから読み込んだ値の出力
echo %server%
echo %log_dir%
echo %log_file%
pause
「setlocal enabledelayedexpansion」は遅延環境変数と呼ばれるもの。詳しくはこちらの記事を見てもらうとして、今回の場合は必要ないので削除してもいいです。
実行結果
上記のバッチファイルを実行すると、結果は以下のようになります。