自动回答由Python运行的批处理脚本的输入提示

时间:2018-08-01 00:45:15

标签: python batch-file

这是一个非常不寻常的用例,在这种情况下,我必须使旧版系统正常工作。

我有Windows批处理脚本,如下所示,名为“ batch_test.bat”(仅示例):

@echo OFF
set /P choice=Enter your choice: 

if /I "%choice%" == "N" (
    echo "Don't proceed"
)

if /I "%choice%" == "Y" (
    echo "Proceed"
)
if /I "%choice%" == "C" (
    echo "Cancel"

)
EXIT /B 0

我有以下python代码(示例):

import os

os.system('batch_test.bat')

问题是我该如何提供Python期望的选择批处理脚本?我做了一些查找,但是找不到合适的答案。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用subprocess.Popen向进程提供输入:

from subprocess import Popen, PIPE
p = Popen('batch_test.bat', stdin=PIPE, stdout=PIPE)
output, _ = p.communicate(b'Y\n')