我想做一个调用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
并继续批量处理的正确方法是什么?
答案 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"