首页 > 解决方案 > 在循环期间与 cmd 提示符交互

问题描述

我正在尝试在 Python 脚本的循环中打开命令提示符,并在命令提示符中 1.) 键入更改目录和 2.) 键入命令。输入并运行命令后,我需要等待它完成,然后再转到脚本的下一部分,但还没有到那一步。

我有以下,希望能打开cmd和交流。

import subprocess

process = subprocess.Popen('cmd', stdin=subprocess.PIPE)

process.communicate(b'cd /target/directory')
process.communicate(b'run.bat')

我在正确的道路上,我怎样才能让脚本等到命令完成然后关闭?

*编辑:我在一个目录中有一个 run.bat 文件,并希望在其特定目录中的命令提示符下运行它。我试过自己运行 .bat 文件,但没有成功。我有一个 cmd 快捷方式,可以在与 run.bat 相同的目录中打开提示,输入“run.bat”当然可以。由于这是迄今为止唯一有效的方法,因此我尝试在 Python 脚本中复制这些步骤。

标签: pythonwindowscmdsubprocess

解决方案


要等待命令完成然后退出,您可以简单地添加它而不是第二次通信

process.communicate(b'run.bat && exit 0')

这将运行run.bat文件,然后在完成后退出代码 0


推荐阅读