关闭dos批处理文件中的屏幕更新

时间:2010-01-22 00:39:15

标签: c++ operating-system system dos

我正在用C ++编写一个程序,它使用system()命令从DOS操作系统启动命令。到目前为止,我认为这么好。但是如何在弹出的控制台窗口中关闭屏幕更新,以便看不到产生的数千条消息。

或者,或者,如何将这些消息转储到其他地方....即,是否有一种更优雅的方式来处理这个而不仅仅是关闭屏幕? 感谢。

4 个答案:

答案 0 :(得分:1)

  1. 为防止语句本身被回显,请将其放在脚本的顶部:

    @echo off

  2. 要防止命令输出,请使用重定向运算符。丢弃标准输出和标准错误流:

    nameofcommand.exe params> nul 2>& 1

  3. 请注意,在脚本中包含错误处理(检查错误级别等)总是一个好主意,特别是如果您丢弃所有输出,如上所示。

答案 1 :(得分:1)

您应该使用_popen函数,该函数会将输出写入流而不是控制台。

答案 2 :(得分:1)

在批处理文件中,您可以将输出重定向到文件。例如。 echo this goes to a file > log.txt会将echo语句的内容写入文件。

请参阅此article on command redirectors

答案 3 :(得分:0)

我知道它很快又脏,但是......或者,将窗口的前景色设置为与背景相同的颜色以隐藏闪烁的文本,请参阅here以获取示例如何做到这一点,它在该页面上的第7个帖子中显示了这样做的代码。您想要的颜色是0x0,黑色是黑色......这样,它看起来是空白的,没有人会看到它..

肮脏我知道......不可否认,SLaks上面的回答会更优雅......

希望这有帮助, 最好的祝福, 汤姆。