Board logo

标题: [文本处理] 如何将命令行程序的最终屏幕显示内容输出到文件? [打印本页]

作者: noe    时间: 2011-2-19 16:31     标题: 如何将命令行程序的最终屏幕显示内容输出到文件?

请教大家如何将命令行程序的_最终_屏幕显示内容输出到文件?
通常 >blah.txt 或2>blah.txt 能完成对输出内容的重定向,不过有时并不是所有的输出内容都显示在最终屏幕上,这时如何只保存最终屏显内容?
例如,某些转换程序带进度指示,这时如果使用 > 来重定向,每次进度更新就会增加一行,而事实上在屏幕显示上,进度一直是原地更新并非形成很多行进度。而我只需要保存最终显示的内容。

为更明确,特截图说明:


若使用 x264.exe blah.avs -o nul 2>blah.txt,则会得到类似以下的文件http://pastebin.com/Rm54ea6n,而我只需要高亮的那些内容(即图中最后一屏。)


补充,以上仅为举例,如果是以上的特定情况(无用信息整齐可预测),可以对输出文件进行过滤处理。不过我在这里想咨询各位有没有通用的解决方案?
谢谢。

[ 本帖最后由 noe 于 2011-2-20 18:57 编辑 ]
作者: Batcher    时间: 2011-2-19 16:34

例如哪个转换程序?
作者: noe    时间: 2011-2-19 16:40

原帖由 Batcher 于 2011-2-19 16:34 发表
例如哪个转换程序?

感谢您的快速回复。
不过我想知道的是通用方案,并非针对某个特定程序。
如果非要举例,比如无损音频编码程序flac。

(想确认一点,我的表达是否足够清楚?是否需要补充说明更多信息?因为我的表达能力向来欠佳。)
作者: netbenton    时间: 2011-2-19 17:24

以前我写过,用DEBUG 方案的,但是用debug 有太多的限制。还是看看谁有没有其它办法吧
作者: Batcher    时间: 2011-2-19 18:38     标题: 回复 3楼 的帖子

非常清楚。
最好能在顶楼给出举例的程序名字,否则别人想帮你写代码还得自己去找那样的程序来做测试。
作者: CrLf    时间: 2011-2-19 20:28

纯bat要想同时输出到文件和屏幕好像没听说过,建议先定向到文件,再type到屏幕。最后要保留的内容用>输出到文件即可
作者: Batcher    时间: 2011-2-19 22:01     标题: 回复 6楼 的帖子

楼主的要求是输出到文件,没有说同时显示到屏幕。
作者: liion631818    时间: 2011-2-19 22:45

use the third tool "tee" can output to cmd screen and file at the same time
作者: Batcher    时间: 2011-2-19 22:50     标题: 回复 8楼 的帖子

这不是楼主的问题所在
作者: CrLf    时间: 2011-2-19 23:04

回8楼,没用过tee,不过第三方命令似乎也不算纯P了吧?
作者: noe    时间: 2011-3-27 19:22

似乎我的表述还是造成了一定的误会,顶楼更新了截图,希望这次明确无误地说明情况。
谢谢。

至于是否借助第三方,个人不介意。
作者: tmplinshi    时间: 2011-3-27 19:40

试试这样:
  1. x264.exe blah.avs -o nul 2>&1 | findstr /vb:"[" >blah.txt
复制代码

作者: Batcher    时间: 2011-3-27 21:52

10# zm900612


XP没有forfile.exe,Vista和Win7都有,如果一个批处理调用了forfile命令,你说它算纯呢还是不纯呢?




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2