gpt4 book ai didi

Python:在 Windows 上启动新的命令提示符并等待它完成/退出

转载 作者:IT老高 更新时间:2023-10-28 22:24:38 24 4
gpt4 key购买 nike

我不明白为什么在 Windows 上执行此操作如此困难。

我想生成一堆可以运行其他脚本的命令提示符窗口。我想要这个的原因是我可以整齐地看到每个脚本的所有输出(如果我让它们只是主窗口中的线程/子进程,我无法正确查看所有输出)。我也不想记录输出,因为它主要用于查看进度条,这实际上不适用于日志文件。

所以我的要求的各个部分有效,但不能一起工作:

os.system("start cmd /c {command here}")     # Launches in new command prompt, closes when done

但是,os 系统不会让我等到命令完成(因为 start 是实际命令,第二次打开新命令提示符时它是“完成”)

同样,如果我尝试:

p = subprocess.Popen(["start", "cmd", "/k", "{command here}"], shell = True) # Needs to be shell since start isn't an executable, its a shell cmd
p.wait() # I can wait until finished (although it too finishes after start finishes)

那么我该怎么做呢?我在某处读到一个解决方案可能是使用 processgroup 但它只是 unix ......或类似的东西

或者,如果您有一种巧妙的方式在单个窗口中显示所有子进程的输出,那么我不需要打开新的命令提示符并且可以简单地使用线程。这也有效,但是如果我说 4 个线程正在下载某些东西并显示进度条以及输出其他信息,我不知道如何以一种可以阅读的方式显示它(以及避免它们都与彼此)。

PS:这是在 Windows Vista 上。PPS:我希望有一个适用于 Windows、Linux 和 Mac 的解决方案,我现在专注于 Windows,但我想要一个适用于所有三者的解决方案,而且我知道 Windows 是最挑剔的。我只想用“the start cmd/c”代替操作系统的相应命令。

最佳答案

阅读您对我之前回答的评论后,您需要的是:

os.system("start /wait cmd /c {command}")

保留 the windows command reference随时待命!

关于Python:在 Windows 上启动新的命令提示符并等待它完成/退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11615455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com