読者です 読者をやめる 読者になる 読者になる

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

設定ファイルを作り、Windowsのbatプログラムで読み込む方法です。

  • key=value形式の設定ファイルを読み込む
  • 環境変数の定義のみのbatファイルをcallする

の2通りを紹介します。
前者は他の言語のアプリケーションと設定ファイルを共通化することができますが、読み込み処理を実装する必要があり、想定外の定義がされるとバグの原因となります。
後者はbatのみでしか使えませんが、確実に読み込めます。

(1)key=value形式の設定ファイルを読み込む

ここでは設定ファイルをiniファイルとして想定し読み込みます。なおセクションの対応はしていません。区切り文字が“=”以外の場合、for文のdelimsに区切り文字を設定します。さすがにXMLの読み込みはきついでしょう。
setting.ini

NAME=taro
WORK=無職

実行用.bat

@setlocal enabledelayedexpansion
@echo off

for /f "tokens=1,2* delims==" %%i in (setting.ini) do ( 
    set %%i=%%j
)
echo NAME=%NAME%
echo WORK=%WORK%

endlocal
exit /b

実行結果

NAME=taro
WORK=無職

(2)環境変数の定義のみのbatファイルをcallする

batファイルにsetで環境変数を定義し、実行用のbatファイルからcallします。
Setting.bat

set NAME=jiro
set WORK=社長

実行用.bat

@setlocal enabledelayedexpansion
@echo off

call Setting.bat
echo NAME=%NAME%
echo WORK=%WORK%

endlocal
exit /b

実行結果

NAME=jiro
WORK=社長