Zervan
09-07-2023, 03:29
Доброго. Появилась сильная задача, которую осилить не смог без полноценного опыта.
Имеется: несколько файлов script
script_2023-07-06_21-57-54.log
script_2023-07-06_21-59-55.log
script_2023-07-06_22-23-43.log
script_2023-07-06_23-57-11.log
script_2023-07-07_02-24-14.log
script_2023-07-07_04-53-45.log
Т.е. они формируются автоматически после запуска программы и записываются после завершения программы. Но есть нюанс: всегда создается активный (во время работы программы) файл log, который постоянно сам себя обновляет. Его я использовать для создания bat файла не могу (или могу?)
Требуется пройти по всем файлам и выцепить количество строк с определенным содержанием. Строка имеет вид:
SCRIPT : string str = '[TRADER] Player: (Name) DF5gGthyj6OKv_PeDFh6hEEChlIGE-cIFc= #tm_sold Нарукавная повязка (Armband_Black)'
Такие строки могут быть и на 5 линии, и на 21040 линии, т.е. все файлы логов объемные сами по себе
По итогу:
1. Нужно чтобы скрипт прошел по всем файлам
2. Чтобы нашел данную строку и фразу "#tm_sold Нарукавная повязка (Armband_Black)"
3. Вывел количество данных строк по всем файлам в текстовый документ.
4. Не перезаписывал количество уже из проверенных файлов
5. Уходил на повторную проверку через n-время
Меня хватило на следующее для теста, но логично, что база файлов не собирается, а также сохранение происходит криво:
@echo off
set /a count=0
:top
for /f "usebackq delims=" %%a in ("script*.log") do for %%i in (%%a) do (
if %%i == #tm_sold Нарукавная повязка (Armband_Black) set /a count+=1
)
echo count : %count%
echo Timeout, next change do 5 sec
timeout /t 5
goto top
Имеется: несколько файлов script
script_2023-07-06_21-57-54.log
script_2023-07-06_21-59-55.log
script_2023-07-06_22-23-43.log
script_2023-07-06_23-57-11.log
script_2023-07-07_02-24-14.log
script_2023-07-07_04-53-45.log
Т.е. они формируются автоматически после запуска программы и записываются после завершения программы. Но есть нюанс: всегда создается активный (во время работы программы) файл log, который постоянно сам себя обновляет. Его я использовать для создания bat файла не могу (или могу?)
Требуется пройти по всем файлам и выцепить количество строк с определенным содержанием. Строка имеет вид:
SCRIPT : string str = '[TRADER] Player: (Name) DF5gGthyj6OKv_PeDFh6hEEChlIGE-cIFc= #tm_sold Нарукавная повязка (Armband_Black)'
Такие строки могут быть и на 5 линии, и на 21040 линии, т.е. все файлы логов объемные сами по себе
По итогу:
1. Нужно чтобы скрипт прошел по всем файлам
2. Чтобы нашел данную строку и фразу "#tm_sold Нарукавная повязка (Armband_Black)"
3. Вывел количество данных строк по всем файлам в текстовый документ.
4. Не перезаписывал количество уже из проверенных файлов
5. Уходил на повторную проверку через n-время
Меня хватило на следующее для теста, но логично, что база файлов не собирается, а также сохранение происходит криво:
@echo off
set /a count=0
:top
for /f "usebackq delims=" %%a in ("script*.log") do for %%i in (%%a) do (
if %%i == #tm_sold Нарукавная повязка (Armband_Black) set /a count+=1
)
echo count : %count%
echo Timeout, next change do 5 sec
timeout /t 5
goto top