概要

WindowsのBATファイル(*.bat)で、環境変数を外部ファイルから読み込む方法を2通り解説します。
DLLなどは不要です。

方法①:外部BATファイルにSETコマンドを書く

設定ファイルとしてBATファイルを用意し、CALLコマンドで取り出しますsetting.bat (環境設定ファイル)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
SET MYENV=HOGEHOGE
SET MYENV2=%MYENV%___2

```test.bat (実行用BATファイル)

```dosbatch
@echo off

REM 設定ファイルの読み込み
CALL setting.bat

ECHO %MYENV%
ECHO %MYENV2%

実行すると、こうなります

1
2
HOGEHOGE
HOGEHOGE___2


方法②:外部テキストファイルに書き、FOR文で取り出す

設定ファイルとしてテキストファイルを用意し、FOR /Fで取り出しますsetting.txt (環境設定ファイル)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
MYENV=HOGEHOGE
MYENV2=%MYENV%___2

```test.bat (実行用BATファイル)

```dosbatch
@echo off

REM 設定ファイルの読み込み
FOR /F "usebackq delims== tokens=1,2" %%i IN ("setting.txt") do SET %%i=%%j

ECHO %MYENV%
ECHO %MYENV2%

実行すると、こうなります

1
2
HOGEHOGE
%MYENV%___2

※設定ファイル内での環境変数の使い回しはできません


まとめ

読みやすさでは方法①より②のほうがわかりやすく、とっつきやすいかと思います。また、方法①はただのBATファイルのため、中で使用した変数を使いまわせます。
一方、方法②では変数の使い回しはできません。
シチュエーションに合わせて使いやすい方を使うようにしませう。