変数を設定する「 VAR.bat 」というファイルがあります。
SET VARa=C:\Program Files
SET VARb=C:\Program Files (x86)
set VARc=C:\ProgramData
変数名だけを含む「 SET.set 」という別のファイルがあります。
VARa
VARb
VARc
次のようなルーチンからセットを呼び出したいと思います。
for /f "tokens=* delims= " %%a in ('type "SET.set"') do (
SET CONSA=%%~a
SET CONSN=%%^%%a%%
CALL :CREATEVAR
)
:CREATEVAR
if exist "%CONSN%" CALL :%CONSA%_detect
exit /b
:VARa_detect
echo "%CONSN%"
exit /b
:VARb_detect
echo "%CONSN%"
exit /b
:VARc_detect
echo "%CONSN%"
exit /b
コマンド プロセッサは値を " C:\Program Files " ではなく " %VARa% " と解釈するため、 ^を使用して値に%をエスケープして追加することはできません。