|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Батник для подсчета информации из логов |
|
CMD/BAT - Батник для подсчета информации из логов
|
Пользователь Сообщения: 63 |
Профиль | Отправить PM | Цитировать
Добрый день!
Помогите написать батник для подсчета информации из логфайла. Нужно чтобы он подсчитал сколько раз открывалсись эти документы из приведенных в логе и общее число открытых документов за период. Строки лога выглядит так: 2013-08-12 15:11:31.373 rl1002772826 30 1,2,166,167,168,169,170,171,172,173,174,175,176,175,176,177,178,179,180,181,182,183,182,183,184,185, 186,187,188,2 ЕВГЕНИЙ АБАКМОВ 10.710.40.92 2013-08-06 15:24:31.537 rl1005019694 5 1,2,1,11,13 ЮЛИЯ АНШИНА 107.4.0.25 2013-08-07 19:11:13.037 rl1003313852 2 1,2 ИРИНА ИЛЬИНА 107.7.44.97 Структура предоставленных данных: - дата и время - номер документа - количество страниц документа, которые были просмотрены - перечень номеров страниц, которые были открыты - Имя пользователя - Фамилия пользователя - IP адрес |
|
Отправлено: 16:44, 13-12-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Укажите, где здесь:
Цитата:
Укажите, каким образом из приведённого фрагмента можно определить, сколько раз открывался документ, и общее число. |
|
Отправлено: 20:35, 13-12-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Номер: rsl1@002772826
Время: 15:11:31.373 Это не полный лог, я взял три строки из него для примера. Определить я думаю можно количеством повторений каждого из номера в логе. Очень надо, помогите пожалуйста разобраться! |
Отправлено: 12:22, 14-12-2013 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Вот болванка кода:
@echo off setlocal enableextensions enabledelayedexpansion set sSourceFile=E:\Песочница\0336\0002.txt set sFromDateTime=2013-08-05 set sToDateTime=2013-08-09 set sDocumentID=rsl1@005019694 "%ProgramFiles%\Log Parser 2.2\LogParser.exe" "SELECT Field3 AS [Document ID], COUNT([Document ID]) AS [Total] USING TO_TIMESTAMP(STRCAT(STRCAT(Field1, ' '), Field2), 'yyyy-MM-dd hh:mm:ss.ll') AS Date INTO DATAGRID FROM '%sSourceFile%' WHERE [Document ID] = '%sDocumentID%' AND TO_TIMESTAMP('%sFromDateTime%', 'yyyy-MM-dd') <= Date AND TO_TIMESTAMP('%sToDateTime%', 'yyyy-MM-dd') >= Date GROUP BY [Document ID]" -i:TSV -iSeparator:space -headerRow:OFF -iCodepage:1251 -stats:OFF -rtp:-1 endlocal exit /b 0 |
Отправлено: 14:09, 14-12-2013 | #4 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Никогда с подобным не сталкивался, подскажите
Я так понял в строку set sSourceFile указывать путь к моему лог файлу. set sFromDateTime - начало set sToDateTime - конец set sDocumentID - это что за параметр??? У меня выдает ошибку: C:\Users\DigitalWAVE>@echo off setlocal enableextensions enabledelayedexpansion set sSourceFile=C:\Users\DigitalWAVE\Desktop\12.txt set sFromDateTime=2013-08-05 set sToDateTime=2013-08-09 set sDocumentID=rsl1@005019694 "ProgramFiles\Log Parser 2.2\LogParser.exe" "SELECT Field3 AS [Document ID], COU NT([Document ID]) AS [Total] USING TO_TIMESTAMP(STRCAT(STRCAT(Field1, ' '), Fiel d2), 'yyyy-MM-dd hh:mm:ss.ll') AS Date INTO DATAGRID FROM '%sSourceFile%' WHERE [Document ID] = '%sDocumentID%' AND TO_TIMESTAMP('%sFromDateTime%', 'yyyy-MM-dd' ) <= Date AND TO_TIMESTAMP('%sToDateTime%', 'yyyy-MM-dd') >= Date GROUP BY [Docu ment ID]" -i:TSV -iSeparator:space -headerRow:OFF -iCodepage:1251 -stats:OFF -rt p:-1 Системе не удается найти указанный путь. endlocal exit /b 0 |
|
Отправлено: 20:59, 14-12-2013 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата vision-d:
Цитата vision-d:
|
||
Отправлено: 14:48, 15-12-2013 | #6 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Да, установил.
Если вставляю код в log parser то получаю следующее: C:\Program Files (x86)\Log Parser 2.2>@echo off setlocal enableextensions enabledelayedexpansion set sSourceFile=C:\Users\DigitalWAVE\Desktop\12.txt set sFromDateTime=2013-08-05 set sToDateTime=2013-08-09 set sDocumentID=rsl1@005019694 "%ProgramFiles%\Log Parser 2.2\LogParser.exe" "SELECT Field3 AS [Document ID], C OUNT([Document ID]) AS [Total] USING TO_TIMESTAMP(STRCAT(STRCAT(Field1, ' '), Fi eld2), 'yyyy-MM-dd hh:mm:ss.ll') AS Date INTO DATAGRID FROM '%sSourceFile%' WHER E [Document ID] = '%sDocumentID%' AND TO_TIMESTAMP('%sFromDateTime%', 'yyyy-MM-d d') <= Date AND TO_TIMESTAMP('%sToDateTime%', 'yyyy-MM-dd') >= Date GROUP BY [Do cument ID]" -i:TSV -iSeparator:space -headerRow:OFF -iCodepage:1251 -stats:OFF - rtp:-1 Error: SELECT clause: Syntax Error: unknown field 'Field3'. The closest match for input format 'TSV' is 'Field1'. To see valid fields for the TSV input format type: LogParser -h -i:TSV endlocal exit /b 0 |
Отправлено: 19:41, 15-12-2013 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата vision-d:
|
|
Отправлено: 19:55, 15-12-2013 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать vision-d, письмо получил, архив забрал. Первое, что вижу — у нас в файле наличествует Tab, а не Space в качестве разделителя; кодировка файла не ANSI/1251, а UTF-8 . Смотрю.
|
Отправлено: 15:18, 16-12-2013 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Итак, сначала исправленный пример для выложенного лог-файла:
Теперь по поводу вопроса из PM: Цитата:
Вот результат: Ежели потребно что-то ещё, або как-то иначе — пишите. |
|
Отправлено: 15:47, 16-12-2013 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - батник для копирования файлов из папки на FTP | zigmund11 | Скриптовые языки администрирования Windows | 1 | 28-02-2013 17:37 | |
CMD/BAT - [решено] батник для копирования файлов из ряда поддиректорий | xumuk032 | Скриптовые языки администрирования Windows | 3 | 27-04-2010 21:23 | |
CMD/BAT - Батник для удаления следов usb из реестра | zedco | Скриптовые языки администрирования Windows | 0 | 26-03-2010 17:30 | |
CMD/BAT - [решено] Батник для извличения из рар архива фалика | dvassilyev | Скриптовые языки администрирования Windows | 8 | 10-08-2009 16:17 | |
[решено] Подскажите, пожалуйста, программу или батник для подсчета интервала времени | truvo | Хочу все знать | 10 | 10-06-2009 11:01 |
|