実行時に環境変数を切り替えたいので、別ファイルに抜き出すバッチファイルを作成してみた。
1. loadenv.bat 作成
以下の内容で、loadenv.bat
を作成する。
@for /f "delims=" %%i in (%1) do @( call :_check %%i )
@set __x=
@exit /b 0
:_check
@set __x=%*
@if not "%__x:~0,1%" == "#" ( call :_set %* )
@exit /b 0
:_set
@set %*
@exit /b 0
2. 環境変数定義ファイルを作成する
以下のフォーマットで環境変数定義ファイルを作成する。
拡張子はなんでもいい。
env.txt
# シャープを付けるとコメントが書ける
hoge=fuga
# この値は設定されない
#foo=bar
# 値にはスペースが含まれていてもいい
abc=a b c
3. 実行する
loadenv.bat
をカレントディレクトリかパスが通っている場所に配置し、呼び出す。
call loadenv env.txt
4. 確認する
(loadenv 後)
> echo %hoge%
fuga
> echo %foo%
%foo%
> echo %abc%
a b c
5. まとめ
設定をバッチファイルに直書きしなくてもいいし、コメントも使えて便利!!