在文件中查找一些单词并批量添加时间戳

时间:2014-08-31 13:36:33

标签: batch-file append match

如何查找FS或WFS与" {"在文件中,在找到的单词后面和" {"。

之前插入时间戳

示例:

FS mmmmmmmmmm {

运行脚本后:

FS mmmmmmmmmm_timestamp {

1 个答案:

答案 0 :(得分:3)

使用REPL.BAT - a hybrid JScript/batch utility非常简单,它在stdin上执行正则表达式搜索/替换,并将结果写入stdout。 REPL.BAT是纯脚本,可​​以在任何现代Windows机器上运行,从XP开始。这也比任何纯批量解决方案快得多。

type "file.txt" | repl "(\bW?FS [^{]*[^{ ])(  *{)" "$1_timestamp$2" >"file.txt.new"
move /y "file.txt.new" "file.txt"

您没有指定,但也许您想要一个时间戳值而不是字符串文字" timestamp"。您可以使用How to get current datetime on Windows command line, in a suitable format for using in a filename?处的任何方法来获取当前时间戳,或者为了最终的易用性和灵活性,您可以使用我的getTimestamp.bat utility - 另一种混合JScript /批处理实用程序。

您不会说出时间戳应该具有什么格式,也不知道精度程度。我假设您需要一种适合文件名的格式 - YYYY-MM-DD_hh-mm-ss

@echo off
setlocal
call getTimetamp -f "{YYYY}-{MM}-{DD}_{HH}-{NN}-{SS}" -r ts
type "file.txt" | repl "(\bW?FS [^{]*[^{ ])(  *{)" "$1_%ts%$2" >"file.txt.new"
move /y "file.txt.new" "file.txt"