我需要从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()
都等待子进程终止。我需要向进程发送两个单独的输入并记录每个进程的响应。
谢谢
答案 0 :(得分:0)
这可能不是您正在寻找的
您可以获取var的值,然后将它们存储在一个文件中。
之后,使用其他程序/语言获取文本文件的内容。这样做:)
希望这能回答你的问题!