将重复的stdout输出压缩为一行


1

我有一个从批处理文件调用的工具,可以打印多行重复输出,比如

已创建1行。

已创建1行。

已创建1行。

1行已删除。

1行已删除。

格式未知,行将被省略。

已创建1行。

已创建1行。

已创建1个文件。

已创建1个文件。

已创建1个文件。

1个文件已删除。

1个文件已删除。

工具已成功完成。

等等,除了可以有数千条相同的线条。通过这种方式,终端窗口中的输出几乎没用。当然,我可以重定向它并将其全部写入文件然后继续执行,但我希望能够一目了然地看到发生了什么并且正在发生。有没有办法在调用此工具的批处理文件中操作流,以便输出看起来像

(3x)创建1行。

(2x)删除1行。

(1x)格式未知,行将被省略。

(2x)创建1行。

(3x)创建了1个文件。

(2x)1个文件已删除。

(1x)工具已成功完成。

优选地,当前最后一行中的计数器将在适当位置更新(替换旧值)并且每次重复输出行时增加,因此人们也会感觉到目前为止所取得的进展。

编辑:一些研究产生了一些似乎对此任务有用的部分:

  1. 这个答案显示了如何从stdin读取
  2. 这里显示了如何替换终端中的当前行,因此我们可以只增加计数器
  3. 关于在批处理中使用函数的Articel,这似乎是将流编辑部分与文件的其他部分分开的好方法。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.