我想跑
tf changeset 12345
使用Visual Studio 2008命令工具。它位于:"c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\"
,启动的命令为:%comspec% /k ""c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"" x86
我想以某种方式将“tf changeset 12345”附加到它并将其保存为字符串而不首先将其重定向到文件。我注意到,当我只是从命令行调用它时,我在键入时得到GUI:
tf changeset 12345
我在做的时候得到了文字输出:
tf changeset 12345 > out.txt
我不想在文件系统上创建文件,但希望只是以“Pythonic方式”读取它。
我已经看过os.system(),subprocess的简短例子,但它们似乎都没有说明如何做我想做的事情:
希望你能帮助我接近我想要的东西。如果您在VS2008或其他Windows程序上测试该解决方案,将会有所帮助。
谢谢!
答案 0 :(得分:3)
process = subprocess.Popen(['tf', 'changeset', '12345'], cwd='c:/somedir', env={'SOMEENVVAR': 'SOMEVALUE', ...}, stdout=subprocess.PIPE)
for line in process.stdout:
print line
process.terminate()
答案 1 :(得分:2)
看一下我使用here来完成您正在寻找的工作的代码。这是用C#编写的,并且是一个灵活的类,您只需要更改命令,查看ps.FileName
和ps.Arguments
,命令的输出将被重定向到StringBuilder
实例如果需要解析。窗口中的shell执行命令是完全隐藏的,不会显示。
希望这有帮助, 最好的祝福, 汤姆。