Пакетный скрипт для поиска строки в нескольких XML-файлах - PullRequest
0 голосов
/ 18 октября 2018

Я написал пакетный скрипт для поиска строки «Ошибка» в нескольких файлах XML в папке.

Я использую цикл 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-файл должен выводить «ошибка найдена», иначе «ошибка не найдена» для каждого файла.

Пожалуйста, помогите мне с правильным кодом.

1 Ответ

0 голосов
/ 18 октября 2018

У вас есть выход в «другое» дело?Таким образом, он завершает работу после первого «ошибка не найдена»

РЕДАКТИРОВАТЬ: попробуйте это:

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!
    )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...