我正在尝试使用Python在Windows上自动执行任务,并在尝试捕获由我用Popen打开的子进程执行的正在运行的子进程的stdin / stdout时遇到麻烦。像泥一样清除吗?
因此,我的python脚本位于DOS外壳(cmd.exe)中,我从那里运行它,它使用subprocess.Popen生成我不拥有且无法修改的.bat脚本。反过来会产生一个新的DOS shell(cmd.exe),这就是我遇到麻烦的地方。
我可以在正在运行的.bat脚本上与stdin / stdout对话,但是一旦它执行了DOS shell,我就看不到任何输出。我猜想文件描述符在Windows上的继承方式与在Unix上的继承方式不同,因此我正在寻找解决此问题的好的方法。到目前为止,我还没有发现任何有效的方法。
关于如何捕获子DOS shell的stdin / stdout的任何想法?
谢谢。