我编写了一个批处理脚本,以搜索文件夹中多个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”,则应为每个文件输出“发现错误”,否则输出“未发现错误”。
请帮助我输入正确的代码。
答案 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!
)
)