通过 Python 使用命令提示符

Working with Command Prompt through Python

我想制作一个脚本来打开命令提示符 window 并在该提示符中输入命令,而无需任何用户交互。我一直在使用 subprocess 模块,但收效甚微。我目前拥有的:

def subprocess_cmd(command):
    process = Popen(command,stdout=PIPE, shell=True)
    proc_stdout = process.communicate()[0].strip()
    print proc_stdout


subprocess_cmd('"C:\system\cmd.exe" & C:\dir\mybat.bat & C:\dir\gdal_translate C:\dir2\mypdf.pdf C:\dir\mytif.tif')

现在 运行 顺利通过,但什么也没发生。 dir2 文件夹中应该有一个 .tif 文件,但正如我所说,什么也没有出现。当我自己 运行 通过命令提示符时,它工作正常。

我认为问题在于您没有从 subprocess class 调用方法和常量。这对我有用 Python 3:

import subprocess

def subprocess_cmd(command,c="C:\Users\Alex"):
    process = subprocess.Popen(command,stdout=subprocess.PIPE,shell=True,cwd=c)
    proc_stdout = process.communicate()[0].strip()
    print(proc_stdout)

>>> subprocess_cmd('"cmd.exe" && "C:\Users\Alex\test.bat"','C:\Users\Alex\')
b'Microsoft Windows [Version 6.3.9600]\r\n(c) 2013 Microsoft Corporation. All rights reserved.\r\n\r\nC:\Users\Alex>\r\nC:\Users\Alex>mkdir thisisanewdirectory'

>>> subprocess_cmd('test.bat')
b'C:\Users\Alex>mkdir thisisanewdirectory'