Развернуть переменную среды из имени сгенерированной во время выполнения переменной

Я создал командный файл, который изменяет PATH в зависимости от того, какое имя компилятора я ему передаю. Я также хочу выбрать из числа этих переменных во время выполнения, у меня есть другой пакетный файл, в котором я генерирую имя соответствующей переменной среды для просмотра, но я не вижу, как развернуть сгенерированную переменную

например

EXE_PATH_%_1%_%PLATFORM%

поэтому, когда пакетный файл называется переменными среды _1, PLATFORM расширяется, чтобы создать разделы соглашения об именах для имени переменной, которую я хочу раскрыть

если я позвоню echo EXE_PATH_%_1%_%PLATFORM% это даст имя переменной, которую я хочу расширить

Как перейти от сгенерированного имени к содержимому переменной среды с этим именем?

Я подозреваю, что требуется отсрочка, но я не уверен

1 ответ

Не совсем понятно, что вы имеете в виду, но, скорее всего, вот какая информация вам нужна:

@echo off
setlocal
set "_1=VSC"
set "PLATFORM=x64"
set "EXE_PATH_%_1%_%PLATFORM%=%ProgramFiles%\VSC\bin"
set "EXE_PATH_NAME=EXE_PATH_%%_1%%_%%PLATFORM%%"
set "EXE_PATH_NAME=%EXE_PATH_NAME%"
set EXE_PATH_
endlocal

Этот пакетный код выводит, например:

EXE_PATH_NAME=EXE_PATH_%_1%_%PLATFORM%
EXE_PATH_VSC_x64=C:\Program Files\VSC\bin

Необходимо использовать CALL для расширения переменных в значение EXE_PATH_NAMEт.е. используйте этот пакетный код с еще одной строкой в ​​соответствии с комментарием JosefZ, который устанавливает переменную EXE_PATH_VALUE:

@echo off
setlocal
set "_1=VSC"
set "PLATFORM=x64"
set "EXE_PATH_%_1%_%PLATFORM%=%ProgramFiles%\VSC\bin"
set "EXE_PATH_NAME=EXE_PATH_%%_1%%_%%PLATFORM%%"
call set "EXE_PATH_NAME=%EXE_PATH_NAME%"
call set "EXE_PATH_VALUE=%%EXE_PATH_%_1%_%PLATFORM%%%"
set EXE_PATH_
endlocal

Этот пакетный код с дополнительным call выходы к примеру:

EXE_PATH_NAME=EXE_PATH_VSC_x64
EXE_PATH_VALUE=C:\Program Files\VSC\bin
EXE_PATH_VSC_x64=C:\Program Files\VSC\bin

Но я действительно не понимаю, почему это так сложно.

Другие вопросы по тегам