我是批处理脚本的新手,目前正试图通过脚本让我的工作变得更轻松(这将取悦我的老板)。有没有办法让批处理文件在文本文件中搜索特定的给定输入,并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:
,没有时间),这是可以接受的。
我知道使用批处理文件搜索/替换/编辑内容很繁琐,这可能吗?
答案 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
循环放入一个块((
和)
之间,并将其输出重定向到文件