|
Компьютерный форум 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 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Такой вопрос - если в строке set sDocumentID= идет перечисление например тех же номеров документа через запятую ,
что нужно тогда указывать в WHERE AND [Document ID] = '%sDocumentID% Если запускаю так как есть, то процесс просто заканчивается. @echo off setlocal enableextensions enabledelayedexpansion set sSourceFile=C:\Users\nadeykinDA\Desktop\document_statistics.txt set sFromDateTime=2013-05-05 set sToDateTime=2013-12-15 set sDocumentID=/rsl01002000000/rsl01002738000/rsl01002738582/rsl01002738582.pdf , /rsl01002000000/rsl01002745000/rsl01002745687/rsl01002745687.pdf "%ProgramFiles%\Log Parser 2.2\LogParser.exe" "SELECT Field4 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%' WHERE Field3 = 'open' AND [Document ID] = '%sDocumentID%' AND TO_TIMESTAMP('%sFromDat eTime%', 'yyyy-MM-dd') <= Date AND TO_TIMESTAMP('%sToDateTime%', 'yyyy-MM-dd') > = Date GROUP BY [Document ID] ORDER BY Total DESC" -i:TSV -iSeparator:space -hea derRow:OFF -nSkipLines:2 -iTsFormat:"yyyy-MM-dd hh:mm:ss.ll" -iCodepage:1251 -st ats:OFF -rtp:-1 endlocal exit /b 0 |
Отправлено: 15:46, 23-12-2013 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:59, 23-12-2013 | #22 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Что-то не получается...
C:\Program Files\Log Parser 2.2>@echo off setlocal enableextensions enabledelayedexpansion set sSourceFile=D:\Script\StatDocsView3kv.txt set sFromDateTime=2013-08-05 set sToDateTime=2013-08-15 set sDocumentID='rsl1@005085351'; 'rsl1@003461496'; 'rsl1@004665301' "%ProgramFiles%\Log Parser 2.2\LogParser.exe" "SELECT Field2 AS [Document ID], C OUNT([Document ID]) AS [Total] USING Field1 AS Date INTO DATAGRID FROM '%sSource File%' WHERE [Document ID] IN '%sDocumentID%' AND TO_TIMESTAMP('%sFromDateTime%' , 'yyyy-MM-dd') <= Date AND TO_TIMESTAMP('%sToDateTime%', 'yyyy-MM-dd') >= Date GROUP BY [Document ID]" -i:TSV -iSeparator:tab -headerRow:OFF -iTsFormat:"yyyy-M M-dd hh:mm:ss.ll" -iCodepage:65001 -stats:OFF -rtp:-1 Error: Syntax Error: <content>: no valid content: expecting opening parenthesis instead of token '''rsl1@005085351';' endlocal exit /b 0 |
Отправлено: 16:50, 23-12-2013 | #23 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 23:26, 23-12-2013 | #24 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Прошу прощения, не доглядел....
|
Отправлено: 09:54, 24-12-2013 | #25 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Есть ещё вот такая надобность. Есть дополнительный файл с id пользователей. Id указаны в основном файле в самом конце. Нужно чтобы скрипт искал кол-во распечаток документов сделанные пользователями из дополнительного файла. Сортировка ID Документа и Total
Я написал так, но это не правильно.... C:\Program Files\Log Parser 2.2>@echo off setlocal enableextensions enabledelayedexpansion set sSourceFile=C:\Users\nadeykinDA\Desktop\document_statistics.txt set sSourceFile2=C:\Users\nadeykinDA\Desktop\qqq.txt set sFromDateTime=2013-05-05 set sToDateTime=2013-12-15 set sDocumentID= "%ProgramFiles%\Log Parser 2.2\LogParser.exe" "SELECT Field4 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%' WHERE Field3 = 'print' AND Field1 FROM '%sSourceFile2%' = Field8 INTO DATAGRID FROM ' %sSourceFile%' AND TO_TIMESTAMP('%sFromDateTime%', 'yyyy-MM-dd') <= Date AND TO_ TIMESTAMP('%sToDateTime%', 'yyyy-MM-dd') >= Date GROUP BY [Document ID] ORDER BY Total DESC" -i:TSV -iSeparator:space -headerRow:OFF -nSkipLines:2 -iTsFormat:"y yyy-MM-dd hh:mm:ss.ll" -iCodepage:1251 -stats:OFF -rtp:-1 Error: Syntax Error: <term1>: AND operator not followed by a valid <term1>: nea r 'Field1' endlocal exit /b 0 |
Отправлено: 12:18, 24-12-2013 | #26 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать vision-d, фокус, скорее всего, не удастся. LogParser работает с одним источником данных (точнее — может и с несколькими, но однотипными). Иногда можно попытаться сделать «финт ушами» вида «SELECT Field11, Field12, … FieldN FROM Source1 WHERE Field11, Field12 IN (SELECT Field21, Field22 FROM Source2)».
Можно будет попробовать OLEDB Text Driver. Как обычно: выкладываете файлы и пишете, что и как требуется извлечь. А я посмотрю, что можно будет сделать. К сожалению, на содержимое файлов при использовании данной технологии накладывается гораздо больше ограничений, нежели при использовании LogParser. |
Отправлено: 12:41, 24-12-2013 | #27 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать Хотелось бы сделать чтобы для начала log parser находил в документе id из room 214 допустим. далее соберу нужную информацию
|
Отправлено: 16:55, 24-12-2013 | #28 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать @echo off setlocal enableextensions enabledelayedexpansion set sSourceFile=E:\Песочница\0336\user.txt set sRoom=214 "%ProgramFiles%\Log Parser 2.2\LogParser.exe" file:"Query - ID by Room.sql"?SourceFile=%sSourceFile%+Room=%sRoom% -i:TSV -iSeparator:space -headerRow:ON -iCodepage:1251 -stats:OFF -rtp:-1 endlocal exit /b 0 Или напрямую: @echo off setlocal enableextensions enabledelayedexpansion set sSourceFile=E:\Песочница\0336\user.txt set sRoom=214 "%ProgramFiles%\Log Parser 2.2\LogParser.exe" "SELECT id INTO DATAGRID FROM '%sSourceFile%' WHERE room = %sRoom%" -i:TSV -iSeparator:space -headerRow:ON -iCodepage:1251 -stats:OFF -rtp:-1 endlocal exit /b 0 |
Отправлено: 17:35, 24-12-2013 | #29 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать |
Отправлено: 21:49, 24-12-2013 | #30 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|