Код:
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set "dt=%%a"
set "YY=%dt:~2,2%"
set "MM=%dt:~4,2%"
set "DD=%dt:~6,2%"
set "today=%YY%%MM%%DD%"
findstr /i /c:"The_database_has_been_locked." "C:\admin\logs\*%today%.log" >> "C:\records\Error.txt"
Описание проблемы:
У меня есть несколько файлов журналов по пути C:\admin\logs\, которые создаются каждый день, имея в своих именах дату этого дня.
Я хочу найти определенное сообщение об ошибке только во всех файлах, созданных сегодня. И как только сообщение об ошибке будет найдено, немедленно добавить полную строку с сообщением об ошибке в текстовый файл с именем Error.txt.
Я запланировал запуск этого скрипта каждый день каждые 10 минут.
Проблема, с которой я сталкиваюсь здесь, заключается в том, что добавление указанного сообщения об ошибке возникало в определенный момент времени несколько раз. Я имею в виду, что при каждом запуске он также добавляет ранее проанализированные сообщения об ошибках, чего я не хочу.
Я хочу добавить сообщение об ошибке только один раз в Error.txt для определенного экземпляра времени возникновения ошибки на текущую дату.
Не могли бы вы помочь мне здесь?
EDIT:фрагмент журнала
Фрагмент журнала:
2013-12-06 16:29:31 10.35.44.195 GET /perform/all/per_cubes.asp - 80 - 172.23.45.72 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+Trident/4.0;+NGD_build;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+.NET4.0C;+.NET4.0E;+InfoPath.3;+MS-RTC+LM+8) 200 0 0 328
2013-12-06 16:29:33 10.35.44.195 GET /perform/all/per_cubes.asp |62|80004005|[Microsoft][ODBC_Microsoft_Access_Driver]_The_database_has_been_locked. 80 - 62.239.225.222 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/5.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.30729;+.NET+CLR+3.5.30729;+.NET4.0C;+.NET4.0E;+SLCC2) 500 0 0 468
2013-12-06 16:29:44 10.35.44.195 GET /perform/all/per_cubes.asp |62|80004005|Unspecified_error 80 - 10.225.206.76 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+Trident/4.0;+NGD_build;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+.NET4.0C;+.NET4.0E;+InfoPath.3;+MS-RTC+LM+8) 500 0 0 93
Добавление сообщения об ошибке в Error.txt, как показано ниже (только один раз в определенное время текущей даты):
2013-12-06 16:29:33 10.35.44.195 GET /perform/all/per_cubes.asp |62|80004005|[Microsoft][ODBC_Microsoft_Access_Driver]_The_database_has_been_locked. 80 - 62.239.225.222 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/5.0;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.30729;+.NET+CLR+3.5.30729;+.NET4.0C;+.NET4.0E;+SLCC2) 500 0 0 468
Error.txt
? - person unclemeat   schedule 08.01.2014