2017-12-18 816 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