Как вы подавляете расширение переменных среды в DOS и Windows CMD?

Это упрощенный пример с измененными именами переменных того, что я хочу сделать. Также для простоты я показываю версию командной строки, а не версию файла 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.

Ответы на вопрос(2)

Ваш ответ на вопрос