我可以通过字符串和数字连接来构建环境变量吗?

时间:2015-11-25 14:33:48

标签: windows visual-studio batch-file

Windows 7;通过命令行构建C ++项目。

我已经安装了Visual Studio 2005-2015。因此,我有一组环境变量:VS80COMNTOOLSVS90COMNTOOLSVS100COMNTOOLSVS110COMNTOOLSVS120COMNTOOLSVS140COMNTOOLS

enter image description here

在我的autorun.bat中,我使用了这样的呼叫:

call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" %1

但我想通过参数指出visual studio tools版本:

set vs_tools=VS%1COMNTOOLS
call "%%vs_tools%%..\..\VC\vcvarsall.bat" %2

但这是不正确的记录。我该怎么办?

1 个答案:

答案 0 :(得分:1)

  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%扩展来运行批处理文件。

  2. 另一种方法是使用delayed expansion

    setlocal enableDelayedExpansion
    call "!VS%1COMNTOOLS!..\..\VC\vcvarsall.bat" %2