Это упрощенный пример с измененными именами переменных того, что я хочу сделать. Также для простоты я показываю версию командной строки, а не версию файла bat.
Я делаю следующее.
> echo %foo%
%foo%
Однако, если foo является допустимой переменной среды, я не получаю желаемый вывод (%foo%
) из-за расширения переменной среды.
> set foo=bar
> echo %foo%
> echo %%foo%%
bar
%bar%
Теперь у меня есть хак, чтобы сделать это (следующий пример), но мне было интересно, есть ли более чистый способ либо вывести символ %
, либо подавить расширение переменной среды.
> set foo=bar
> set percent=%
> echo %percent%foo%percent%
%foo%
Кроме того, если требуемое решение отличается в файле bat (например, %%
, а не %
или %1%
, а не %1
), пожалуйста, сообщите мне.
Мой фактический вариант использования находится в bat-файле с SETX
для установки глобальных переменных среды, которые зависят от другой переменной среды, которая будет расширяться внутри них, но мне любопытно, как расширяться в DOS или cmd.