从Python打开并执行多个并发的Windows命令提示符



我正在尝试在Windows中自动化一些乏味的命令行使用。

我需要打开Zookeeper服务器的一个实例,然后打开一个新的命令提示符,并打开ApacheKafka服务器的实例。我希望能够打开新的命令提示符窗口并在它们上执行新命令。

这与我在StackOverflow上发现的其他查询的区别在于,我需要所有这些进程同时运行。我需要Zookeeper和Kafka服务器都处于活动状态。

因此,例如,此代码失败。

os.system (ZOOKEEPER_START_SERVER + ' ' + ZOOKEEPER_CONFIG)
os.system (KAFKA_START_SERVER + ' ' + KAFKA_SERVER_CONFIG)

它启动Zookeeper服务器,但由于服务器在后台无限期运行,程序挂起。

我需要在一个新的命令提示符中以某种方式打开Kafka服务器,理想情况下继续运行我的Python脚本,根据需要打开新的窗口来访问Kafka server的内容。

我可以通过将以上两行放入方法中,在交互模式下手动打开文件,执行相关函数,然后在新的命令窗口中重复,来完成我想要的操作。

这对我目前的目的来说太乏味了,但我希望它能让问题变得更清楚。

我希望我已经说清楚了。谢谢你的帮助!

您有几个选项。你可以试试:

import subprocess
subprocess.Popen([ZOOKEEPER_START_SERVER, ZOOKEEPER_CONFIG], creationflags=subprocess.CREATE_NEW_CONSOLE)

或者,您可以使用start命令。

如果您只想允许用户与窗口交互:

import subprocess
subprocess.call('cmd /C "start (' + ZOOKEEPER_START_SERVER + ' ' + ZOOKEEPER_CONFIG + ')"')
subprocess.call('cmd /C "start (' + KAFKA_START_SERVER + ' ' + KAFKA_SERVER_CONFIG + ')"')

如果您希望以编程方式与窗口交互,则需要将subprocess.Popen与管道一起使用,您可以在Python手册中阅读这些内容。

最新更新