工做中用到一個python腳本,自動化運行某目錄下的多個vc工程代碼。python
編譯工程代碼的命令以下,直接運行會失敗,系統找不到devenv,咱們須要添加devenv.exe所在的目錄到環境變量中。ui
os.system(
'
devenv
'+ name+
'
.sln /project
'+ name +
'
.vcproj /Rebuild "debug|win32" /Out
'+ name +
'
.cmp>nul
')
項目組已經有一個本身編寫的添加各類臨時環境變量的bat腳本,其中也包含vc的環境變量。因此想在python中直接先調用一下現有腳本再執行編譯命令,但發現沒效果。緣由聽說是os.system是獨立的進程,環境變量的修改對後面的語句不生效。
os.system(
'
call "../../set_vs_env.bat"
')
os.system(
'
devenv
'+ name+
'
.sln /project
'+ name +
'
.vcproj /Rebuild "debug|win32" /Out
'+ name +
'
.cmp>nul
')
cmd =
'
call "../../set_vs_env.bat" &
' +
'
devenv
'+ name+
'
.sln /project
'+ name +
'
.vcproj /Rebuild "debug|win32" /Out
'+ name +
'
.cmp>nul
' os.system(cmd)