Windows批处理:将字符串追加到stdout

时间:2015-04-07 19:43:07

标签: windows batch-file

我正在运行几个管道命令来获取如下所示的输出文件:

decode.exe < itch-20150213.txt | select -I 101 | dump.exe > 20150213.txt

输出文本文件:

val11 val12 val13 val14 
val21 val22 val23 val24 
... etc

我是否有一种简单的方法可以将字符串(日期)“20150213”附加到输出的最后一列,以便我得到:

val11 val12 val13 val14 20150213
val21 val22 val23 val24 20150213
... etc

(如果完全不可能只在windows命令行中执行此操作,Bash方法会是什么?)谢谢

1 个答案:

答案 0 :(得分:0)

没有可以方便地执行此操作的本机批处理工具或实用程序。可以编写纯批处理文件,但它会很难看,而且速度很慢。我确定你可以找到一个可以完成这项工作的unix工具的Windows端口。或者您可以编写一个简单的自定义JScript或VBS脚本。我还想象使用PowerShell会很容易。

我会使用我的JREPL.BAT utility - 一个混合JScript /批处理脚本,它在stdin上执行正则表达式查找和替换。 JREPL.BAT是纯脚本,可​​以在任何Windows机器上从XP开始本地运行。

假设JREPL.BAT位于PATH中的某个位置,那么您需要的只是JREPL的另一个管道:

decode.exe < itch-20150213.txt | select -I 101 | dump.exe | jrepl $ " 20150213" > 20150213.txt

将字符串添加为前缀同样容易:

decode.exe < itch-20150213.txt | select -I 101 | dump.exe | jrepl "^" "20150213: " > 20150213.txt