2014-03-02 28 views
2

我想這樣做調用setenv.cmd,並像其他一些命令繼續批處理文件:VC++ 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 

不幸的是,該批次1號線後,因爲它要求我們阻止接近一個新的cmd.exe。 我也試圖與

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

,但沒有成功:在首批仍停止執行此setenv.cmd後。

調用setenv.cmd並繼續批處理的正確方法是什麼?

+0

'開始 「」 setenv.cmd' – Aacini

+0

@Aacini,它不工作... – Basj

回答

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" 
+0

它最後的作品使用 '叫「C:\ Program Files文件(x86)的\微軟的Visual Studio 9.0 \ VC \ bin \ vcvars32.bat「(然後是'設置DISTUTILS_USE_SDK = 1','設置MSSdk = 1','python setup.py build'如果我想構建一個python模塊) – Basj