我有一个命令行工具,通常会转储大约200行输出.我正在寻找出现在此输出结尾的文本.当我将输出重定向到文件时:
C:\> somecommand > results.txt 2>&1
…此文件中只显示前100行左右的输出.同样,如果我将输出管道输入类似’findstr’的东西,接收程序将无法在大约第100行之后找到或操作任何文本.
shell的屏幕缓冲区大小设置似乎对可捕获的行数没有任何影响.
有什么想法在这里发生了什么?对于它的价值,有问题的命令是InstallShield 2012中的iscmdbld.exe.
我尝试过的其他命令(例如’dir’)不会出现此问题.
只有在cmd窗口中运行命令时才能查看程序的完整输出.
好吧,不幸的是我没有安装InstallShield,因此我很难运行一些测试,但是我已经完成了在处理输入和输出时没有像他们应该做的那样执行的程序.在正常情况下“>”应该没有限制,我在Windows服务器上使用它很多,后台运行ghostscript和其他旧的dos程序,将输出管道传输到文件的唯一方法是使用>,有时我有文件的相当多的Mb,所以200行真的要用当前的exe做点什么.
我只能建议尝试一些解决方法,例如你可以尝试tee32,它是一个小的免费软件,它将捕获所有dos屏幕输出到文件.因此,您将在屏幕上看到输出,您也可以将其存储在文件中.
您可以阅读更多相关信息:here很遗憾,页面上提到的链接不起作用,但我能够找到它的工作副本:here
我真的希望这能帮助你克服这个问题.
埃米尔