将重复的标准输出压缩为一行

将重复的标准输出压缩为一行

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

已创建 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. 这个答案显示了如何从标准输入读取
  2. 这里展示了如何在终端中替换当前行,所以我们可以让计数器增加
  3. 关于批处理中使用函数的文章,这似乎是将流编辑部分与文件的其他部分分开的好方法。

相关内容