2012-03-23 76 views
3

我想运行一个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 . . .

回答

5

这应该为你工作:

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

/V:ON使变量延迟扩展,这是你所需要的是什么。开关的顺序(/V:ON /C)很重要。

+0

我错过了/ V:ON和!BASE!部分。 – Steve 2012-03-23 19:30:06