我正在用C ++编写一个程序,它使用system()命令从DOS操作系统启动命令。到目前为止,我认为这么好。但是如何在弹出的控制台窗口中关闭屏幕更新,以便看不到产生的数千条消息。
或者,或者,如何将这些消息转储到其他地方....即,是否有一种更优雅的方式来处理这个而不仅仅是关闭屏幕? 感谢。
答案 0 :(得分:1)
为防止语句本身被回显,请将其放在脚本的顶部:
@echo off
要防止命令输出,请使用重定向运算符。丢弃标准输出和标准错误流:
nameofcommand.exe params> nul 2>& 1
请注意,在脚本中包含错误处理(检查错误级别等)总是一个好主意,特别是如果您丢弃所有输出,如上所示。
答案 1 :(得分:1)
您应该使用_popen
函数,该函数会将输出写入流而不是控制台。
答案 2 :(得分:1)
在批处理文件中,您可以将输出重定向到文件。例如。 echo this goes to a file > log.txt
会将echo语句的内容写入文件。
答案 3 :(得分:0)
我知道它很快又脏,但是......或者,将窗口的前景色设置为与背景相同的颜色以隐藏闪烁的文本,请参阅here以获取示例如何做到这一点,它在该页面上的第7个帖子中显示了这样做的代码。您想要的颜色是0x0,黑色是黑色......这样,它看起来是空白的,没有人会看到它..
肮脏我知道......不可否认,SLaks上面的回答会更优雅......
希望这有帮助, 最好的祝福, 汤姆。