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

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

Я делаю следующее.

> echo %foo%

%foo%

Однако, если нечто является допустимой переменной среды, я не получаю желаемый вывод (%foo%) из-за расширения переменной среды.

> set foo=bar
> echo %foo%
> echo %%foo%%

bar
%bar%

Теперь, у меня есть взлом, чтобы сделать (следование примеру) это, но я задавался вопросом, существует ли более чистый путь к любому выводу a % символ или подавить расширение переменной среды.

> set foo=bar
> set percent=%
> echo %percent%foo%percent%

%foo%

Кроме того, если требуемое решение отличается в bat-файле (как %% вместо % или %1% вместо %1) сообщите мне.

Мой фактический вариант использования находится в bat-файле с SETX установить глобальные переменные среды, которые полагаются на другую переменную среды, которая будет расширена в них, но мне любопытно относительно того, как расшириться или в DOS или в cmd.

8
задан Adisak 10 April 2018 в 23:01
поделиться

2 ответа

в пакетном файле, эхо %% нечто %% генерирует %foo %.

c:\01Temp>type foo.bat
@echo %%foo%%

c:\01Temp>foo
%foo%

c:\01Temp>
6
ответ дан 5 December 2019 в 21:19
поделиться

В рамках пакетного файла используйте два %% S, E.G. :

set foo=1
echo %%foo%%

...echoes «% Foo%», а не «1». Я не знаю о способе отключения его в непосредственной близости (например, не в пакетном файле).

1
ответ дан 5 December 2019 в 21:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: