我需要一个接一个地运行多个程序,并且每个程序都在控制台窗口中运行。 我希望控制台窗口可见,但是为每个程序创建一个新窗口。这很烦人,因为每个窗口都在另一个关闭的位置打开一个新的位置,并在Eclipse中工作时窃取焦点。在一个Windows命令提示符下按顺序运行多个程序?
这是我所用的初始代码:
def runCommand(self, cmd, instream=None, outstream=None, errstream=None):
proc = subprocess.Popen(cmd, stdin=instream, stdout=outstream, stderr=errstream)
while True:
retcode = proc.poll()
if retcode == None:
if mAbortBuild:
proc.terminate()
return False
else:
time.sleep(1)
else:
if retcode == 0:
return True
else:
return False
我切换到使用“加利福尼亚”调用subprocess.Popen当打开一个命令提示,然后调用proc.stdin.write(b'program.exe \ r \ n')。 这似乎解决了一个命令窗口的问题,但现在我不知道第一个程序何时完成,我可以开始第二个。在运行第二个程序之前,我想停止并询问第一个程序中的日志文件。
有关如何实现此目的的任何提示?是否有另一个选项可以在一个窗口中运行程序,我还没找到?
这将几乎工作。我基本上通过写入一个我自己打开的命令提示符来完成同样的事情。但问题是,在第一个命令完成后,我无法停止,检查日志文件,然后继续下一个命令。 – Sean 2010-12-11 20:25:41
@Sean:看起来好像你可以使用一个允许你检查日志文件并确定批处理文件可以检查并用来确定是否退出或继续的退出代码来插入命令的调用。批处理程序支持'if [not] errorlevel ...'条件处理。如果你有兴趣,我可以更新我的答案,以显示如何做到这一点。 – martineau 2010-12-11 21:15:01
谢谢马蒂诺。我对错误级别和批处理文件进行了快速搜索并找到它。谢谢您的帮助! – Sean 2010-12-12 16:55:05