3

我想做一个批处理文件,调用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和继续批处理的正确方法是什么?

4

1 回答 1

3

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

@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"
于 2014-03-02T21:17:16.347 回答