我想使用python在批处理文件中运行命令。下面的屏幕截图显示了Windows cmd中的批处理文件和命令。
我尝试使用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中运行批处理文件中的特定命令。
答案 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")