Windows bat: 設定ファイルを読む

Windowsのバッチファイルで、変数を定義した設定ファイルを読み込む方法です。
本記事では下記の2通りの方法を紹介します。

  1. key=value形式のファイルをファイル処理にて読み込む
  2. 別のバッチファイルに環境変数を定義し、callする

key=value形式のファイルは他言語のアプリケーションと設定を共通化することができますが、読み込みに実装が必要となります(Properties.bat )。
別のバッチファイルに環境変数を定義してcallするのはバッチファイルのみでしか使えませんが、確実に読み込めます。

(1)key=value形式のファイルをファイル処理にて読み込む

プロパティファイルの読み込みを共通のライブラリとしてプログラムを作成しました。下記の記事をご参照ください。
プロパティファイルを読み、環境変数に設定する

Javaで使われるようなプロパティファイルを想定します。行の先頭文字が#の場合、コメント行として無視します。

プロパティファイル:app.properties
name=Taro
age=30
実装例
@setlocal enabledelayedexpansion
@echo off

for /f "tokens=1,2* delims==" %%i in (app.properties) do ( 
    set KEY=%%i
    if not "!KEY:~0,1!"=="#" (
        set %%i=%%j
    )
)
echo Name: %name%
echo Age: %age%

endlocal
実行結果
Name: Taro
Age: 30

(2)別のバッチファイルに環境変数を定義し、callする

バッチファイルに環境変数への代入を定義し、本処理のバッチファイルからcallします。

環境変数バッチファイル:Setting.bat
set NAME=Jiro
set AGE=25
実装例
@setlocal
@echo off

call Setting.bat
echo Name: %NAME%
echo Age: %AGE%

endlocal
exit /b
実行結果
Name: Jiro
Age: 25