窗口外壳-如果在文件中找到文本,则输出日志

时间:2019-05-29 06:34:34

标签: batch-file

要在文件中查找文本,可以使用以下代码

findstr /MIC:"string to find" "path of file"

问题

如果找到/未找到文本,如何输出不同的字符串。像下面这样。

if (find "string" "path") (
echo "Found" >> log.txt
) else (
echo "Not Found" >> log.txt
)

特定问题

我有一批文本文件(* .html),其中可能包含以下文本之一

...
<div class="status_item">This feature has been configured and is functioning properly. All status tests have passed.</div>
...

OR

...
<div class="status_item">This feature failed to configured and not working properly. Please contact your administrator.</div>
...

我需要定期运行Shell脚本以检查状态并将结果输出到日志文件(log.txt)。示例如下所示。

....
Wed 05/29/2019 foo.html 10:00:00.00 Normal
Wed 05/29/2019 bar.html 10:01:00.00 Normal
Wed 05/29/2019 bar.html 10:02:00.00 Abnormal
Wed 05/29/2019 foo.html 10:03:00.00 Normal
Wed 05/29/2019 foo.html 10:04:00.00 Normal
...

特定解决方案

@echo off
(for %%A in (*.html) do findStr /MIC:"functioning properly" "%%A">Nul&&(
echo %date% %time% %%A Normal) || echo %date% %time% %%A Abnormal) >> log.txt

1 个答案:

答案 0 :(得分:0)

这是我找到的解决方案。

如果您不需要来回显文件名

@echo off
(findstr /MIC:"string to find" *.txt>Nul && (
echo "Found") || echo "Not found") >> log.txt

如果您需要回显文件名

@echo off
(for %%A in (*.txt) do findstr /MIC:"string to find" "%%A">Nul&&(
echo %%A "Found") || echo %%A "Not found") >> log.txt