Назад | Перейти на главную страницу

Переменные escape в командной строке cmd

Я установил свою переменную так:

SET Ant="%HOMEDRIVE%%HOMEPATH%\Downloads\apache-ant-1.9.0-bin\apache-ant-1.9.0\bin"

:: Set Path variable  
setx PATH "%Ant%" /m

Тогда результат для переменной пути:

C:\Users\Ruben\Downloads\apache-ant-1.9.0-bin\apache-ant-1.9.0\bin

Как мы видим, переменные окружения расширены.

Я бы хотел, чтобы они не расширялись, чтобы установить мою переменную пути следующим образом:

%HOMEDRIVE%%HOMEPATH%\Downloads\apache-ant-1.9.0-bin\apache-ant-1.9.0\bin

Есть ли способ не расширять переменные окружения?

Это трюк на моем Win7:

SET Ant=^%HOMEDRIVE^%^%HOMEPATH^%\Downloads\apache-ant-1.9.0-bin\apache-ant-1.9.0\bin

setx PATH "%Ant%" /m

Проверим, все ли в порядке:

echo %Ant%
%HOMEDRIVE%%HOMEPATH%\Downloads\apache-ant-1.9.0-bin\apache-ant-1.9.0\bin

set | findstr Ant
Ant=%HOMEDRIVE%%HOMEPATH%\Downloads\apache-ant-1.9.0-bin\apache-ant-1.9.0\bin

Вроде все нормально :)

Чтобы это заработало, мне пришлось:

  • Побег % символы с использованием каретки (^).
  • Удалите двойные кавычки.