【问题标题】:use python to run commands in batch file使用python在批处理文件中运行命令
【发布时间】:2018-07-31 02:37:02
【问题描述】:

我想使用 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 中运行。

【问题讨论】:

    标签: python batch-file subprocess


    【解决方案1】:

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

    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")
    

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

    【讨论】:

      【解决方案2】:

      你的意思是这样的吗?

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

      还是这个?

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

      【讨论】:

      • 我无法使用os.system 打开这个bat 文件。 subprocess 工作。
      猜你喜欢
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 2020-03-23
      • 1970-01-01
      相关资源
      最近更新 更多