Python 为什么Popen(“cmd.exe echo a”,shell=True)没有运行;回声;?
这导致了我在使用Python 为什么Popen(“cmd.exe echo a”,shell=True)没有运行;回声;?,python,python-3.x,Python,Python 3.x,这导致了我在使用Popen()时遇到的一个更大的问题 以下内容与我认为的不符: x = subprocess.Popen("cmd.exe echo a", stdout=PIPE, shell=True) print (x.stdout.read()) 返回cmd控制台的“title”消息,但从不执行echo a 同: x = subprocess.Popen(["cmd.exe", "echo a"], stdout=PIPE) print (x.stdout.read()) 及 最终结
Popen()
时遇到的一个更大的问题
以下内容与我认为的不符:
x = subprocess.Popen("cmd.exe echo a", stdout=PIPE, shell=True)
print (x.stdout.read())
返回cmd控制台的“title”消息,但从不执行echo a
同:
x = subprocess.Popen(["cmd.exe", "echo a"], stdout=PIPE)
print (x.stdout.read())
及
最终结果是在open cmd terminal中打印标准的“Microsoft Windows版本…”和CLI位置
C:\Python36>
cmd.exe
需要参数/C
在传递执行的脚本之前:
x = subprocess.Popen(["cmd.exe", "/c", "echo a"], stdout=PIPE)
print (x.stdout.read())
cmd.exe
需要参数/c
在传递执行的脚本之前:
x = subprocess.Popen(["cmd.exe", "/c", "echo a"], stdout=PIPE)
print (x.stdout.read())
当您指定
shell=True
时,命令处理器cmd.exe
是隐式的
>>> x = subprocess.Popen("echo a", stdout=subprocess.PIPE, shell=True)
>>> print (x.stdout.read())
a
通过显式调用它,您可以启动一个嵌套的命令控制台,就像您在提示符下键入了
cmd.exe
。它的输出不会进入Popen()
的管道。当您指定shell=True
时,命令处理器cmd.exe
是隐式的
>>> x = subprocess.Popen("echo a", stdout=subprocess.PIPE, shell=True)
>>> print (x.stdout.read())
a
通过显式调用它,您可以启动一个嵌套的命令控制台,就像您在提示符下键入了
cmd.exe
。它的输出不会进入Popen()
的管道。现在,如果我想要C:\Users\Me>C:\path\to\app.exe arg1 arg2
的stdout
,该怎么办?如果我打开一个cmd控制台并提供.exe路径和args,输出将生成到stdout
,但我似乎无法在OP中的链接中用子进程作为大纲进行复制。现在,如果我想要stdout
的话,比如说C:\Users\Me>C:\path\to\app.exe arg1 arg2
?如果我打开一个cmd控制台并提供.exe路径和args,输出将生成到stdout
,但我似乎无法将子流程作为OP中我链接中的大纲进行复制。