我想运行一个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 . . .
答案 0 :(得分:5)
这应该适合你:
cmd.exe /X /V:ON /C "set BASE=2&&echo !BASE!&&pause"
/V:ON
启用变量的延迟扩展,这是您需要的。交换机的顺序(/V:ON /C
)很重要。