批处理脚本以在多个xml文件中搜索字符串

时间:2018-10-18 05:33:24

标签: windows batch-file search

我编写了一个批处理脚本,以搜索文件夹中多个XML文件中的字符串“ Error”。

我正在使用for循环遍历所有文件,并使用find命令搜索那些文件中的特定字符串。 但是,我看到只有在一个完整的迭代之后才在特定文件中搜索字符串,而不是在写入find命令的行上进行。它没有给出正确的输出。

我编写了以下脚本(Windows):

cd C:\Logs\
setlocal EnableDelayedExpansion 
for /r . %%g in (*.xml) do ( set xml_file_name=%%~nxg 

 find /I "Error"  "C:\Logs\!xml_file_name!"
 if %errorlevel%==0 ( 
   echo Error found at C:\Logs\!xml_file_name!
 ) else (
   echo No Error found.
   exit )
 )

大约有10-15个xml文件,如果xml文件中有字符串“ Error”,则应为每个文件输出“发现错误”,否则输出“未发现错误”。

请帮助我输入正确的代码。

1 个答案:

答案 0 :(得分:0)

在“其他”情况下您有出口吗?因此它在第一个“没有发现错误”之后退出

编辑:试试这个:

echo off
cd C:\Logs\
setlocal EnableDelayedExpansion 

setlocal EnableDelayedExpansion 
for /r . %%g in (*.xml) do ( set xml_file_name=%%~nxg 

    find /I "Error"  "C:\Logs\!xml_file_name!" > nul & if errorlevel 1 ( 
        echo No Error found.
    ) else (
        echo Error found at C:\Logs\!xml_file_name!
    )
)