尝试将输入批量写入正在运行的控制台应用程序时出错

问题描述

我有一个要与批处理文件一起执行的exe文件

Exe文件是第三方控制台应用程序,将提示您输入三次。

所以我想用空行,someText和someOtherText填充它

(echo. echo someText echo someOtherText) | call config.exe remove

但是我遇到了这个错误

Cannot read keys when either application does not have a console or when console input has been redirected. Try Console.Read.

可能是问题所在,请至少建议搜索方向?

即使尝试执行一个更简单的命令,我也会遇到相同的错误

echo. | call config.exe remove

解决方法

您的config.exe根本不接受重定向。它需要真实的控制台缓冲区。

  1. 如果要使其自动化,可以创建另一个控制台应用程序,
  1. 另一个更简单的选择是ConEmu terminal(我是作者)。 GuiMacro scripting可以从控制台轻松使用。因此,您可以从提示符处运行,也可以将其包装在批处理文件中(在ConEmu中运行):

    ConEmuC.exe -GuiMacro打印“ \ nsomeText \ nsome Other Text \ n”并删除co​​nfig.exe