使用python调用批处理脚本,该脚本设置env变量并运行另一个使用它们的程序

时间:2014-07-23 19:27:33

标签: python windows batch-file cmd subprocess

我需要从Python调用一个批处理脚本来设置环境变量,然后使用这些环境变量来完成其他程序的执行。我在运行python的windows环境中。

我无法调用Popen("setupEnv.bat")然后调用Popen("command args"),因为批处理脚本完成后env变量会丢失。由于此失败,我试图手动打开cmd提示并分别拦截每个命令的输出,但我遇到了这个问题:

proc = subprocess.Popen("cmd.exe",stdin=subprocess.PIPE,stdout=subprocess.PIPE,
               stderr=subprocess.STD  OUT,shell=True)
stdin.write("setupEnv.bat")
stdin.write("command args")

我需要单独拦截这些输出。是否有一些机制可以暂停子进程或等待其输出。 proc.communicate()proc.wait()都等待子进程终止。我需要向进程发送两个单独的输入并记录每个进程的响应。

谢谢

1 个答案:

答案 0 :(得分:0)

这可能不是您正在寻找的
您可以获取var的值,然后将它们存储在一个文件中。 之后,使用其他程序/语言获取文本文件的内容。这样做:)

希望这能回答你的问题!