【问题标题】:Error while trying to write inputs to running console app with a batch尝试使用批处理将输入写入正在运行的控制台应用程序时出错
【发布时间】:2020-08-19 12:59:42
【问题描述】:

我有一个要使用批处理文件执行的 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

【问题讨论】:

  • 如上一个问题所述,没有办法修复它,除非你能找到代码的开发者,或者如果你有源代码。
  • 您在三个echo 命令之间忘记了&。然后使用echo/ 而不是echo.。请注意,尾随的 空格 也将被回显。最后,没有必要对可执行文件使用call...
  • @Gerhard,上一个问题是关于批处理的语法,在这里我希望找到一些解决方法或破解来管理错误。通常,没有无法解决的任务,只有具有奇怪解决方法的任务:)

标签: batch-file cmd console console-application


【解决方案1】:

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

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

    ConEmuC.exe -GuiMacro print "\nsomeText\nsome Other Text\n" & config.exe remove

【讨论】:

  • 我在工作中的网络安全阻止了您的 ConEmu 终端,但使用另一个控制台应用程序的解决方案有效,它正在运行,谢谢。
  • 我想知道您使用哪种安全产品?如果这不是秘密......
猜你喜欢
  • 1970-01-01
  • 2020-08-17
  • 1970-01-01
  • 1970-01-01
  • 2015-05-12
  • 2021-05-09
  • 2012-12-21
  • 1970-01-01
  • 2019-08-17
相关资源
最近更新 更多