我正在尝试从python脚本中的.bat
文件中获取输出,如果我在.bat
文件中硬编码一个变量值,则代码可以正常工作,但是我希望该值是动态的。
这是我用来执行外部文件的代码。
command = 'C:/this/this.bat'
p = subprocess.Popen(command, universal_newlines=True,
shell=True, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
text = p.stdout.read()
retcode = p.wait()
文件this.bat
需要用户输入,但是我不确定如何在python脚本中提供它,例如来自变量。感谢您的帮助。
答案 0 :(得分:1)
我已经处理过类似的事情。我解决的方法是提示用户输入python中的值。然后使用子进程将这些值传递到.bat文件中。
command = [shutil.which('C:/this/this.bat') ,sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5]]
subprocess.Popen(command).wait()
这假定您可以将.bat文件更改为采用参数而不是提示。