【问题标题】:How to grab CMD input with line that updates如何使用更新的行获取 CMD 输入
【发布时间】:2019-05-10 14:51:36
【问题描述】:

我相信有些人熟悉这个概念。你在 CLI 上运行一个命令,随着它的进行,你前面的一行会更新一个百分比。在引擎盖下,在打印每一行之前,它会清除当前行,因此您只有一行更新,而不是 100 行进度更新,直到达到 100%。

我想制作一个应用程序,将这些信息回显到嵌入式显示播放窗口中。我对 Java 很陌生,我希望我的应用程序运行 Windows 命令(确切地说是 sfc /scannow),即时向用户显示输出,然后一旦完成,我想分析日志文件并给用户一个可读的结论。

是否有某种库或特殊方法可以做到这一点,以便当控制台窗口中的行“更新”时,我可以简单地覆盖显示窗口中的当前行?

【问题讨论】:

  • stackoverflow.com/questions/55560959/…。它将直接写入窗口而不是 StdOut。
  • 对不起,我完全不知道这如何回答我的问题。
  • 好吧,也许您应该研究一下您的主题。它是您主题领域的直接答案。研究它。它说明了如何在特定位置写入控制台。
  • 我不明白如何访问SetConsoleCursorPosition() 函数。我的问题实际上是如何确定何时更新了一行而不是刚刚添加,但我认为@kutschkem 已经回答了这个问题。感谢您的意见。

标签: java windows cmd command-line-interface


【解决方案1】:

该行可能是由程序将\r 控制字符(回车)写入标准输出来更新的。处理这个是接收应用程序的任务。普通终端通过将光标设置到行首来处理这个问题。你的程序可以截取这个字符,也可以通过重置行来处理它。

【讨论】:

    猜你喜欢
    • 2022-08-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 2017-06-13
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多