工作中用到一个python脚本,自动化运行某目录下的多个vc工程代码。

编译工程代码的命令如下,直接运行会失败,系统找不到devenv,我们需要添加devenv.exe所在的目录到环境变量中。


' 
   devenv  
   '+ name+   
   ' 
   .sln /project  
   '+ name +  
   ' 
   .vcproj /Rebuild "debug|win32" /Out  
   '+ name +  
   ' 
   .cmp>nul 
   ')

项目组已经有一个自己编写的添加各种临时环境变量的bat脚本,其中也包含vc的环境变量。所以想在python中直接先调用一下现有脚本再执行编译命令,但发现没效果。原因据说是os.system是独立的进程,环境变量的修改对后面的语句不生效。

' 
   call "../../set_vs_env.bat"  
   ')   
   
os.system( 
   ' 
   devenv  
   '+ name+   
   ' 
   .sln /project  
   '+ name +  
   ' 
   .vcproj /Rebuild "debug|win32" /Out  
   '+ name +  
   ' 
   .cmp>nul 
   ')

 

 所以只能2个cmd命令放到一个调用中执行,也就是一次执行多个cmd,cmd命令间用&符连接。

' 
   call "../../set_vs_env.bat" &  
   ' +  
   ' 
   devenv  
   '+ name+   
   ' 
   .sln /project  
   '+ name +  
   ' 
   .vcproj /Rebuild "debug|win32" /Out  
   '+ name +  
   ' 
   .cmp>nul 
   '   
   
os.system(cmd)