使用python在批处理文件中运行命令

时间:2018-02-20 16:48:10

标签: python batch-file subprocess

我想使用python在批处理文件中运行命令。下面的屏幕截图显示了Windows cmd中的批处理文件和命令。 screen capture

我尝试使用python打开批处理文件。

import os
os.system('C:/Program Files/MetroCon-3.2/RepSend/RepSendQXGA64.bat')

返回'1'表示失败。

import subprocess
filepath="C:/Program Files/MetroCon-3.2/RepSend/RepSendQXGA64.bat"
p = subprocess.Popen(filepath, shell=True, stdout = subprocess.PIPE)
stdout, stderr = p.communicate()
print (p.returncode)

此返回'0'。命令列表在stdout中,可以在python中显示。

问题是如何在Windows cmd中运行批处理文件中的特定命令。

2 个答案:

答案 0 :(得分:2)

如果要从bat文件运行特定命令,可以将bat文件作为txt文件打开(或使用stdout输出),逐行读取,然后通过winpexpect模块与cmd通信。 / p>

import winpexpect
import subprocess
import multiprocessing
cmd = winpexpect.winspawn("cmd")
# Create read write buffers
cmd.logfile_read = read_buffer
cmd.logfile_write = write_buffer
cmd.sendline("insert whatever command line you want")

编辑:如果我理解正确,我可以添加读/写缓冲区实现

答案 1 :(得分:1)

你的意思是这样吗?

import os
os.chdir("C:/Program Files/MetroCon-3.2/RepSend/")
os.startfile("RepSendQXGA64.bat")

还是这个?

os.system("start /wait cmd /c RepSendQXGA64.bat")