搜索和编辑文本文件w / Batch

时间:2016-04-11 18:35:03

标签: batch-file search edit

我是批处理脚本的新手,目前正试图通过脚本让我的工作变得更轻松(这将取悦我的老板)。有没有办法让批处理文件在文本文件中搜索特定的给定输入,并echo到文本文件中?

例如,文本文件如下所示:

4/11/2016
01530594
Time In: 1:30
01565832
Time In: 2:32

在这个示例中,给定的字符串是01530594,我需要在文本文件中搜索它,并记录时间,使其看起来像这样:

4/11/2016
01530594
Time In: 1:30
Time Out: 3:21
01565832
Time In:

如果需要其他东西以使其更容易(例如,从一开始就已经Time Out:,没有时间),这是可以接受的。

我知道使用批处理文件搜索/替换/编辑内容很繁琐,这可能吗?

1 个答案:

答案 0 :(得分:1)

set "timevalue=3:21"
(
  for /f "delims=" %%i in (infile.txt) do (
    echo %%i
    echo %%i|find "Time In:" >nul && echo Time Out: %timevalue%
  )
)>outfile.txt

for循环逐行读取文件。第一个echo将该行写入outfile。

第二条echo行有点复杂:

echo %%i|find "Time In:"看起来,如果该行包含字符串“Time In:”。 >nul将其输出写入涅((我们不需要它,我们只想知道它是否存在)。

&&表示“执行下一个命令,如果上一个命令成功(即find)。如果是,请写一个额外的行Time Out: %timevalue%

将整个for循环放入一个块(()之间,并将其输出重定向到文件