🌟

Windows Batchで外部のコンフィグを環境変数を一括設定する。

2023/05/20に公開

外部環境変数

外部環境の設定を別ファイルに切り出せば、実行環境関連の設定を別のコンフィグに切り出す必要があります。
Windows Batchファイルで読み込む処理を簡単で整理しておきます。

Windows Batchのサンプル実装

一行ずつ読み込んで環境変数を設定します。

@ECHO off

SETLOCAL EnableDelayedExpansion

for /f "delims=" %%a in (test.config) do (
    for /F "tokens=1,* delims=\=" %%b in ("%%a") do (
        @REM KEYが存在する場合のみ、変数を設定する。(要件にて修正してください)
        if NOT "%%b"=="" if NOT "%%c"=="" ( SET %%b=%%c )
    )
)

PAUSE

ポイント解析

  1. コマンド本文を出力しないようにする。

    @ECHO off
    
  2. 変数の内容を遅延展開させてる。

    SETLOCAL EnableDelayedExpansion
    
  3. 文字列を分解して、変数に設定する。

    for /F "tokens=1,* delims=\=" %%b in ("%%a") do (
        # do some thing with vars(%%b %%c).
    )
    

テストデータ

上記のバッチと同じフォルダーに置いてから実行してください。

test.config
AAA=testa
BBB=testb
CCC=testc
DDD=testd=ddd

参照

  1. バッチファイルで繰り返し処理を使う(FOR)
  2. forは、ループ処理を行うコマンドです。

Discussion