Расширение переменных среды для командной строки - PullRequest
3 голосов
/ 23 марта 2012

Я хотел бы запустить cmd.exe, который будет оценивать переменные среды во время вызова, а не когда он анализирует команду. Если я установлю BASE на 2 и повторю его, я должен увидеть номер 2, хотя запуск этого скрипта не устанавливает должным образом базу.

Ожидаемое поведение: C:\Users\schristo>cmd.exe /X /C "set BASE=2 && echo %BASE% && pause" 2 Press any key to continue . . .

Фактическое поведение: C:\Users\schristo>cmd.exe /X /C "set BASE=2 && echo %BASE% && pause" %BASE% Press any key to continue . . .

1 Ответ

5 голосов
/ 23 марта 2012

Это должно работать для вас:

cmd.exe /X /V:ON /C "set BASE=2&&echo !BASE!&&pause"

/V:ON включает замедленное расширение переменных, что вам и нужно.Порядок выключателей (/V:ON /C) имеет значение.

...