バッチファイルで複数バッチから呼ばれる共通変数の定義

バッチファイル

夜間処理などWindowsタスクからバッチを実行するケースがよくあると思います。
夜間処理で複数バッチを実行する場合、DB接続情報などをそれぞれのバッチファイルに定義すると、保守環境から本番環境へリリースする場合など、バッチファイルの数が多くなると、一部ファイルの修正漏れや修正間違いが発生する可能性が高くなります。
そこで、複数のバッチで使用する共通変数を定義する方法をご紹介します。

コーディング例

test01.bat

SET SERVER=SERVER01\MSSQL
SET DATABASE=DATABASE01
SET USER_ID=user01
SET PASSWORD=pass</code></pre>
test02.bat
<pre class="line-numbers"><code class="language-言語名" data-language="言語名">@ECHO OFF
SETLOCAL

REM カレントディレクトリ変更
CD /D %~dp0

REM 共通変数バッチの読み込み
CALL test01.bat

REM 共通変数の表示
ECHO SERVER=%SERVER%
ECHO DATABASE=%DATABASE%
ECHO USER_ID=%USER_ID%
ECHO PASSWORD=%PASSWORD%</code>

実行結果

SERVER=SERVER01\MSSQL
DATABASE=DATABASE01
USER_ID=user01
PASSWORD=pass

CALLコマンドでバッチファイルを呼び出すだけです。簡単ですね。
ポイントとしてはtest01.batには「SETLOCAL」は記述しないことです。
test01.batに「SETLOCAL」を記述するとtest01.batで定義して変数はtest01.batでしか使用できなくなります。
以上、「Windowsバッチで複数バッチから呼ばれる共通変数の定義」の紹介でした。