【发布时间】:2014-09-14 08:22:02
【问题描述】:
我有一些 Python 函数可以执行批处理命令:
subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True).stdout.read().decode('utf-8').rstrip()
在 Linux 中运行它是可以的,但在 Windows 中运行它会在每个子进程中打开一个新控制台。Popen 调用并且之前的控制台不知道新控制台中的函数所做的任何修改。
我该如何继续?
【问题讨论】:
-
了解您使用的
cmd会有所帮助。另外,我没有看到 Win7 和 2.7.2 发生这种情况。即使我对cmd使用“暂停”,我也看不到窗口。最后一件事:您不能从子环境影响当前环境。这不是它的工作原理(除非你做一些疯狂的事情,比如设置注册表)。但是,您可以在生成新环境之前影响当前环境。 See the documentation for os.environ.
标签: python windows batch-file subprocess popen