我想做一个调用 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
并继续批处理的正确方法是什么?
最佳答案
使用 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"
关于windows - 批处理文件中的 VC++ SetEnv.cmd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22132141/