Windows 7;通过命令行构建C ++项目。
我已经安装了Visual Studio 2005-2015。因此,我有一组环境变量:VS80COMNTOOLS
,VS90COMNTOOLS
,VS100COMNTOOLS
,VS110COMNTOOLS
,VS120COMNTOOLS
,VS140COMNTOOLS
:
在我的autorun.bat
中,我使用了这样的呼叫:
call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" %1
但我想通过参数指出visual studio tools版本:
set vs_tools=VS%1COMNTOOLS
call "%%vs_tools%%..\..\VC\vcvarsall.bat" %2
但这是不正确的记录。我该怎么办?
答案 0 :(得分:1)
您无法直接call %%variable%%
,只能将原始call CMDcommand %%variable%%
作为%%
传递到%
的{{1}} %%var%%
。 }变为%var%
并发生正常的变量扩展。
call set vs_tools=%%VS%1COMNTOOLS%%
call "%vs_tools%..\..\VC\vcvarsall.bat" %2
第一个命令通过vs_tools
技巧设置call
第二个命令使用普通%variable%
扩展来运行批处理文件。
另一种方法是使用delayed expansion:
setlocal enableDelayedExpansion
call "!VS%1COMNTOOLS!..\..\VC\vcvarsall.bat" %2