這導致了一個更大的問題,我有here和Popen()
。爲什麼Popen(「cmd.exe echo a」,shell = True)沒有運行「echo」?
以下沒有做什麼,我認爲應該:
x = subprocess.Popen("cmd.exe echo a", stdout=PIPE, shell=True)
print (x.stdout.read())
返回CMD控制檯的「稱號」的消息,但絕不會在執行echo a
。
與相同:
x = subprocess.Popen(["cmd.exe", "echo a"], stdout=PIPE)
print (x.stdout.read())
和
cmd = "cmd.exe echo a"
x = subprocess.Popen(shlex.split(cmd), stdout=PIPE)
print (x.stdout.read())
最終的結果是在打印標準的開放CMD終端 「Microsoft Windows版本...」 和C:\Python36>
一個CLI位置。
現在如果我想說'C:\ Users \ Me>'C:\ path \ to \ app.exe arg1 arg2'的'stdout'?如果我打開一個cmd控制檯並提供.exe路徑和參數,輸出會生成爲「stdout」,但我似乎無法像在我的OP中的鏈接中概述的那樣使用「subprocess」進行復制。 – madeslurpy