首页 > 解决方案 > 如何使用python对一个命令行程序一一执行多个命令?

问题描述

如何使用python对一个命令行程序(.exe)一一执行多个命令。我需要发送命令并且需要阅读命令行上每个命令的回复。自从登录和设置以来,所有在一个会话中都必须完成。

我尝试了下面的代码(python 3.6),但它不工作

from subprocess import Popen, PIPE
process = Popen( "cmd.exe", shell=False, universal_newlines=True,
                  stdin=PIPE, stdout=PIPE, stderr=PIPE ) 



cmd= "\"C:\temp\demo.exe\"\n"
out, err = process.communicate(cmd)

print(out)

out, err = process.communicate( 'login\n' )

print(out)

标签: pythoncmdpython-os

解决方案


这样你可以执行多个命令

import subprocess

command_list=["C:\\temp\\demo.exe","echo hello"]

for command in command_list:
    proc = subprocess.Popen(command, shell=True,
                           stdin=subprocess.PIPE, stdout=subprocess.PIPE)
    out, err = proc.communicate()
    print("{} : {}".format(command,out.decode()))

因为shell=True不需要cmd.exe


推荐阅读