Jak powstrzymać ekspansję zmiennych środowiskowych w DOS i Windows CMD?

Jest to uproszczony przykład ze zmodyfikowanymi nazwami zmiennych tego, co chcę zrobić. Dla uproszczenia pokazuję wersję wiersza poleceń, a nie wersję pliku bat.

Robię co następuje.

> echo %foo%

%foo%

Jeśli jednak foo jest poprawną zmienną środowiskową, nie otrzymuję żądanego wyjścia (%foo%) ze względu na rozszerzenie zmiennej środowiskowej.

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

bar
%bar%

Teraz mam hak do zrobienia (następujący przykład), ale zastanawiałem się, czy istnieje lepszy sposób na wyjście a% znak lub w celu stłumienia rozszerzenia zmiennej środowiskowej.

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

%foo%

Ponadto, jeśli wymagane rozwiązanie różni się w pliku bat (np%% zamiast% lub%1% zamiast%1) proszę daj mi znać.

Mój rzeczywisty przypadek użycia znajduje się w pliku bat zSETX aby ustawić globalne zmienne środowiskowe, które opierają się na innej zmiennej środowiskowej, aby były w nich rozwijane, ale jestem ciekawy, jak rozwinąć w DOS lub cmd.

questionAnswers(2)

yourAnswerToTheQuestion