我对Python很陌生,所以我为新手的错误道歉:)
我需要编写一个python脚本来设置visualstudio的环境,然后创建一个临时工作区,从tfs签出最新版本,最后在一个目录下运行多个.msbuild文件,并将输出保存到日志文件中。在
我想出了这个脚本,但它不起作用:
import subprocess
command = "cmd.exe /C dir C:\\"
all_logs = []
def run_cmd(command):
"""run a command and print output"""
print 'Running: "%s"' % command
print 'Working dir: %s' % os.getcwd()
print 'Env params: %s' % os.environ
p = subprocess.Popen(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out, err = p.communicate()
print 'output: %s' % out
print 'error: %s' % err
all_logs.append(out)
def set_env_params():
os.environ['PATH'] = os.environ['PATH'] + r';C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC'
def run_tasks():
#Get Variables
#set Env Parameters
set_env_params()
#source code checkout
#script
run_cmd('tf get C:\Users\username\Documents\TFS /recursive')
run_cmd('msbuild.exe C:/Users/username\Documents\TFS\BuildScripts/msbuild/libraries.msbuild')
run_cmd('msbuild.exe C:\Users\username\Documents\TFS\BuildScripts/msbuild/pex.msbuild')
run_cmd('msbuild.exe C:\Users\username\Documents\TFS\BuildScripts/msbuild/dhsati.msbuild')
run_cmd('msbuild.exe C:\Users\username\Documents\TFS\BuildScripts/msbuild/dhbati.msbuild')
run_cmd('msbuild.exe C:\Users\username\Documents\TFS\BuildScripts/msbuild/view.msbuild')
run_cmd('msbuild.exe C:\Users\username\Documents\TFS\BuildScripts/msbuild/datafeed.msbuild')
run_cmd('msbuild.exe C:\Users\username\Documents\TFS\BuildScripts/msbuild/apps.msbuild')
run_cmd('msbuild.exe C:\Users\username\Documents\TFS\BuildScripts/msbuild/misc.msbuild')
run_cmd('msbuild.exe C:\Users\username\Documents\TFS\BuildScripts/msbuild/sdp.msbuild')
run_cmd('msbuild.exe C:\Users\username\Documents\TFS\BuildScripts/msbuild/unittests.msbuild')
def main():
print '### STARTING TASKS ###'
run_tasks()
print '### FINISHED TASKS ###'
if __name__ == '__main__':
#to run if this python script it executed directly
main()
我面临的主要问题是: 1) 设置环境变量gor VS2010是不够的。为了让cmd理解'tf'命令,我还需要运行vcvarsall.bat公司文件。在
2)如果我添加“开始”C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat公司“'命令,另一个cmd正在打开,环境正确,但脚本中的后续命令无法插入此新cmd中。在
我还试图编写一个bat文件,我将从我的脚本运行,但我在cmd进程中遇到了同样的问题。在
问题:
1)是否有一种方法可以在单个进程下运行所有命令?在
2)我最好的方法是什么?在
目前没有回答
相关问题 更多 >
编程相关推荐