Это - упрощенный пример с названиями измененной переменной того, что я хочу сделать. Также для пользы простоты, я показываю версию командной строки, а не версию 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.
в пакетном файле, эхо %% нечто %% генерирует %foo %.
c:\01Temp>type foo.bat
@echo %%foo%%
c:\01Temp>foo
%foo%
c:\01Temp>
В рамках пакетного файла используйте два %%
S, E.G. :
set foo=1
echo %%foo%%
...echoes «% Foo%», а не «1». Я не знаю о способе отключения его в непосредственной близости (например, не в пакетном файле).