【问题标题】:Passing text into Windows cmd line using a python script使用 python 脚本将文本传递到 Windows cmd 行
【发布时间】:2021-05-12 10:30:07
【问题描述】:

我正在尝试编写一个简单的 python 脚本,该脚本将打开 Windows cmd 行,切换到指定目录,然后输入文本:'Test.exe -blah -blahblah etc...' 以运行我的带有我在 cmd 行中指定的参数的 Test.exe 可执行文件。

我目前的代码如下:

import subprocess

subprocess.Popen(r'C:\Windows\System32\cmd.exe', cwd=r'C:\PythonTestScripts')

此代码成功启动windows cmd.exe,并将目录更改为上面指定的cwd,但我不知道如何从Python将文本传递到cmd窗口。

我尝试将它作为字符串参数传递给 subprocess.Popen 括号,我还尝试将 PIPE 分配给标准输入和标准输出,但运气不佳。我熟悉 Uni 的简单编码,但我不熟悉 Python 的语法或脚本。

非常感谢任何帮助。

【问题讨论】:

    标签: python cmd subprocess popen


    【解决方案1】:

    您的问题之一可能是 cmd.exe 在您启动后不会退出。 我成功地将/C 参数传递给cmd.exe,它告诉它在处理完命令后退出。

    这行得通:

    from subprocess import Popen,PIPE
    
    my_command = "dir *.log"
    with Popen([r"C:\Windows\System32\cmd.exe","/C",my_command], stdout=PIPE, cwd=r'C:\Temp') as proc:
        print(proc.stdout.read().decode().replace("\r\n","\n"))
    

    【讨论】:

      最近更新 更多