如何使用Python向命令行写入内容

4

我需要在命令提示符中运行一系列命令,并希望自动化这个过程。我可以使用Python代码在命令提示符中运行命令:

import os
os.system("start /B start cmd.exe @cmd /k {command}")

或者

import os
import subprocess
p = subprocess.Popen(["start", "cmd", "/k", "command"], shell = True)

然而,在执行完一个命令后,我不能在同一个命令提示符上写另一个命令。有没有办法做到这一点?
此主题调用Python中的外部命令类似,但我认为它没有解释如何在前一个命令完成执行后向同一个命令提示符写入新命令。
此外,据我了解使用subprocess运行多个bash命令是解释如何并行运行命令而不是依次运行。

可能是[使用subprocess运行多个bash命令]的重复问题(https://dev59.com/ImMm5IYBdhLWcg3wRdUz) - JD D
它解释了如何并行运行它们而不是一个接一个地运行。@JD D - Toykan Ozdeger
1
为什么要使用Python,而不直接使用任何种类的shell脚本呢?因为最终你可能还是需要从Python中启动一个shell脚本! - B. Go
3
如果你想要在命令行中运行一系列的命令,你可以使用“command1; command2; command3...”的方式。如果你希望命令出错时停止执行,你可以加上“&”或“&&”,具体取决于你所使用的命令行工具。 - B. Go
1
@ToykanOzdeger 看一下“admenva”的回答,它展示了如何一个接一个地运行命令。 "FrancisWolcott"的回答建议只是使用 && 链接命令,这对你也应该适用。 - JD D
语言的准确性确实很重要。短语“命令提示符”是什么意思?命令提示符是由Shell呈现给用户的字符串。说“在命令提示符中运行一个命令”根本没有任何意义。我想它的意思是“将一个字符串发送到Shell以执行”,如果你用准确的语言描述你要解决的问题,我相信解决方案就变得微不足道了。 - William Pursell
2个回答

0

您可以插入'&'符号(或其他符号,例如'&&':

p = subprocess.Popen(["start", "cmd", "/k", "cd Desktop && cd Programs"], shell = True)

我想知道在这种情况下是否有保证每个函数都会在前一个函数完成后开始。 - pandy giankoulidis

-1
Popen(["start", "cmd", "/k" "cd Desktop && cd Programs"], shell=True)

回答太业余了。 - mo1ein
答案太业余了。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接