【发布时间】:2015-04-16 01:11:04
【问题描述】:
我想制作一个脚本,它可以打开命令提示符窗口并在该提示符中输入命令,而无需任何用户交互。我一直在使用 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 文件,但正如我所说,什么都没有出现。当我自己运行命令提示符时,它工作正常。
【问题讨论】:
-
与其尝试在一行中运行,不如用python创建一个批处理文件,然后通过cmd.exe运行那个批处理文件?
-
我对 Windows shell 的东西有点生疏了,但是第一个 cmd.exe 真的按照你的意图做吗?我认为它会启动一个新的 shell,并且在您手动退出 shell 之前,它永远不会进入 & 之后的命令。
标签: python command subprocess