Найти ключевое слово произошло сегодня с помощью пакета - PullRequest
0 голосов
/ 18 октября 2019

Мне нужно найти все ошибки ORA в моем файле log.txt, который произошел сегодня с помощью пакетной программы. Я не очень хорош в пакетном режиме, поэтому не могу добавить фильтр даты и времени с моим кодом ниже.

@echo off
findstr /m "ORA-" Alert.txt
if %errorlevel%==0 (
    echo There is an ORA Error in Alert File!
)

Ошибки в файле:

2019-10-14T00:43:40.497493+01:00
Errors in file C:\R2DATABASE\PRODUCT\12.2.0\diag\rdbms\r2\r2\trace\r2_j000_11628.trc:
ORA-12012: error on auto execute of job "R2"."R3NOTIFICATION_160328336632"
ORA-06550: line 1, column 763:
PLS-00201: identifier 'R3NOTIFICATION_PKG.GENERATENOTIFICATIONFORR3' must be declared
ORA-06550: line 1, column 763:
PL/SQL: Statement ignored
2019-10-14T00:43:42.029005+01:00
Errors in file C:\R2DATABASE\PRODUCT\12.2.0\diag\rdbms\r2\r2\trace\r2_j001_2524.trc:
ORA-12012: error on auto execute of job "R2"."R3NOTIFICATION_160328336632"
ORA-06550: line 1, column 763:
PLS-00201: identifier 'R3NOTIFICATION_PKG.GENERATENOTIFICATIONFORR3' must be declared
ORA-06550: line 1, column 763:
PL/SQL: Statement ignored

Формат даты и времени - 2019-10-14T00:43:40.497493+01:00

1 Ответ

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

Вот пример, основанный на совете из комментария Герхарда. Должны быть выведены строки с сегодняшнего дня, которые начинаются с ORA-, а описание начинается с error.

@Set "Var="
@For /F "Tokens=1-3Delims=/ " %%A In (
    '^""%__APPDIR__%Robocopy.exe" /NJH /L "\|" Null^"'
)Do @If Not Defined Var Set "Var=%%A-%%B-%%CT"
@Set "Line="
@For /F "Delims=:" %%A In ('FindStr /NLB "%Var%" "Alert.txt"'
)Do @If Not Defined Line Set /A Line=%%A-1&GoTo :GetLines
:GetLines
@If Defined Line More +%Line% "Alert.txt"|"%__APPDIR__%findstr.exe" /LB "ORA-"
@Pause
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...