【发布时间】:2012-07-20 21:02:46
【问题描述】:
我有一个命令行工具,它通常会输出大约 200 多行的输出。我正在寻找出现在此输出末尾的文本。当我将输出重定向到文件时:
C:\> somecommand > results.txt 2>&1
...只有前 100 行左右的输出显示在此文件中。同样,如果我将输出通过管道传输到“findstr”之类的内容中,接收程序在大约第 100 行之后将无法找到或操作任何文本。
shell 的屏幕缓冲区大小设置似乎对可以捕获的行数没有任何影响。
有什么想法吗?对于它的价值,有问题的命令是来自 InstallShield 2012 的 iscmdbld.exe。
我尝试过的其他命令(例如“dir”)不会出现此问题。
只有在 cmd 窗口中运行命令时才能查看程序的完整输出。
【问题讨论】:
-
在开始时尝试重定向,以防命令将其视为参数 -
> results.txt 2>&1 somecommand -
尝试追加输出:C:\> somecommand >> results.txt 2>&1
-
我有与我自己的 Visual C++ 项目相同的程序。重定向到文件时,我的程序的输出会被截断。
-
程序(第一次出现)-> 问题
-
我的截断输出是 google-test 输出,其中我有 50 多个测试对象,总共有 200 多个测试函数。