2017-12-18 327 views
0

我無法找到任何答案。 其中一條命令行是對exe的調用,它的返回值不相關。另一方面,代碼的輸出對我很重要。 我需要運行這個EXE並行到我寫的另一個BAT文件,但我找不到獲得輸出並行運行的方式。 python/cmd有沒有辦法做到這一點?並行運行多個命令行並打印輸出(Python/cmd)

回答

1

在批處理文件中,您可以使用start XYZ運行不阻塞的東西。如果你想使用python(我建議批量使用),請使用subprocess模塊:

p1 = subprocess.Popen(["my.exe", "arg1", "arg2"]) 
p2 = subprocess.Popen(["cmd", "/c", "my.bat"]) 

p1.wait() 
p2.wait() 
+0

令人驚歎。效果很好。謝謝!什麼; – AmitRe

+0

是什麼; 'start'還是'subprocess'? – xtofl

+0

您可以直接運行.bat或.cmd文件。 WinAPI'CreateProcess'通過'%ComSpec%'shell執行它,如果已定義,則默認爲cmd.exe。另外,CMD的'start'命令的'subprocess.Popen'也需要'creationflags = CREATE_NEW_CONSOLE | CREATE_NEW_PROCESS_GROUP'。你現在的例子更像'start/b'。 – eryksun