くんすとの備忘録

IT系技術メモ

移転しました。

15秒後に自動的にリダイレクトします。

BATファイルで環境変数を設定ファイルから読み込む方法2つ

概要

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

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

設定ファイルとしてBATファイルを用意し、CALLコマンドで取り出します

setting.bat (環境設定ファイル)

SET MYENV=HOGEHOGE
SET MYENV2=%MYENV%___2

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

@echo off

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

ECHO %MYENV%
ECHO %MYENV2%

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

HOGEHOGE
HOGEHOGE___2



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

設定ファイルとしてテキストファイルを用意し、FOR /Fで取り出します

setting.txt (環境設定ファイル)

MYENV=HOGEHOGE
MYENV2=%MYENV%___2

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

@echo off

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

ECHO %MYENV%
ECHO %MYENV2%

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

HOGEHOGE
%MYENV%___2

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


まとめ

読みやすさでは方法①より②のほうがわかりやすく、とっつきやすいかと思います。

また、方法①はただのBATファイルのため、中で使用した変数を使いまわせます。
一方、方法②では変数の使い回しはできません。


シチュエーションに合わせて使いやすい方を使うようにしませう。