首页 > 解决方案 > 使用 Python 子进程模块向 cmd 提示符发送命令

问题描述

使用 python 3.7

我有以下问题:我编写了一个 python 脚本,在其中我打开一个 cmd 提示符,执行一些操作,然后我想向打开的 cmd 提示符发送一些命令

为了简化,它看起来像:

import subprocess
process = subprocess.Popen(['start','cmd','/k','dir'], shell = True, stdin= subprocess.PIPE, 
stdout = subprocess.PIPE, text = True)

"DO some actions"

input = 'date'
process.stdin.write(input)
process.communicate(input, timeout = 10)

脚本一直以异常 TimeoutExpired 退出,并且在 cmd 提示符下我没有看到写入的命令(输入)

我查看了文档,但我是 python 新手,不太了解如何使用 subprocess 模块

谢谢你的支持!

标签: pythonsubprocess

解决方案


如果您想date在另一个cmd选项卡中编写类似的内容,请执行以下操作:

import subprocess
input = 'date'
subprocess.Popen(['start','cmd','/k','echo',input], shell = True, stdin = subprocess.PIPE, stdout = subprocess.PIPE, text = True)

结果:
在此处输入图像描述


推荐阅读