批量搜索和编辑文本文件

Search and Edit Text Files w/ Batch

我对批处理脚本相当陌生,目前正在尝试使用脚本简化我的工作(这会让我的老板满意)。有没有办法让批处理文件在文本文件中搜索特定的给定输入,然后 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:,没有时间),那是可以接受的。

我知道search/replace/edit批处理文件的东西很乏味,这可能吗?

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 将行写入输出文件。

第二行echo有点复杂:

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

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

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