VC ++ SetEnv.cmd在批处理文件中

时间:2014-03-02 19:17:57

标签: windows visual-c++ batch-file cmd setenv

我想做一个调用setenv.cmd的批处理文件,并继续执行其他一些命令:

%COMSPEC% /E:ON /V:ON /K "%PROGRAMFILES%\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd"

setenv /Release /x86
set DISTUTILS_USE_SDK=1
set MSSdk=1
python setup.py build

不幸的是,批次在第一行之后停止,因为它调用了接近新cmd.exe的内容。 我也试过

call "%PROGRAMFILES%\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd /Release /x86

但是,失败:执行此setenv.cmd后,初始批次仍然停止。

调用setenv.cmd并继续批量处理的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

使用call在当前上下文中运行批处理脚本 - 即让任何环境变量在父上下文中设置其值。即:

@call "%VSCOMNTOOLS%\SetEnv.cmd"

修改

以下是我在一个构建脚本中实际设置编译器环境的方法。我们有一大块代码将PF设置为当前系统的32位程序文件路径。然后调用vcvars32.bat来配置编译器环境。如果SetEnv.cmd不适合您,使用vcvars可能没问题。

@rem Note: can use @call "%VS120COMNTOOLS%\..\..\VC\bin\vcvars32.bat"
if "%VCINSTALLDIR%"=="" call "%PF%\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"