我需要一個接一個地運行多個程序,並且每個程序都在控制檯窗口中運行。 我希望控制檯窗口可見,但是爲每個程序創建一個新窗口。這很煩人,因爲每個窗口都在另一個關閉的位置打開一個新的位置,並在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