バッチファイルで複数バッチから呼ばれる共通変数の定義
夜間処理など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バッチで複数バッチから呼ばれる共通変数の定義」の紹介でした。