我特林去捕捉在特定时刻在命令提示符(cmd窗口)显示的信息,并将其发送到一个文本文件中。如何在Windows中随时捕获命令提示符的显示输出?
我在C/C++应用程序由批处理脚本推出这样的:
c:\myProgramInC.exe
echo "Ending with error"
PAUSE
myProgramInC.exe始终运行(与无限循环),所以如果我的脚本获取到echo命令这意味着我的应用以异常结束。
我想得到的是脚本结束执行前的前几行,因为我的myProgramInC.exe总是打印有关正在发生的事情的信息,查看发生错误时发生了什么会非常有用。这样
c:\myProgramInC.exe
**** Execution of process to get te previous N lines in the command prompt ****
echo "Ending with error"
PAUSE
我知道cmd窗口的东西有一个缓冲区,我一直在想捕捉到所有的数据从这样的缓冲。有什么方法可以将这些信息作为文本存储在文件中?
我一直在尝试一些更专业的事情,使用ProcDump创建内存转储,但由于我有不同的myProgramInC.exe同时运行(每个存储在不同的位置),我只是得到消息“多个进程匹配指定的名称。”其余的选项对我来说没有用,因为我的应用程序没有反应迟钝,它只是结束。
任何想法?我们能够立刻在民德
是'myProgramInC.exe'你的程序?你可以添加一些日志到你的代码? – aphoria 2012-08-12 14:21:18
'myProgramInC.exe'不是我的,但我经常更新;当发生这种情况时,我使用try-catch funcionality来获取正在使用的数据,并且一切正常。但是,正如我所说,同一个应用程序有很多实例(它存在于不同的版本中),并且由于它是一个传统软件,其中一些是ANSI C代码,它不接受try-catch的使用,并且对于这些版本有必要有某种记录器。 – AdamC 2012-08-14 00:44:18