Итак, сначала исправленный пример для выложенного лог-файла:
читать дальше »
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFile=E:\Песочница\0336\StatDocsView3kv.txt
set sFromDateTime=2013-08-05
set sToDateTime=2013-08-15
set sDocumentID=rsl1@004665301
"%ProgramFiles%\Log Parser 2.2\LogParser.exe" "SELECT Field2 AS [Document ID], COUNT([Document ID]) AS [Total] USING Field1 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:tab -headerRow:OFF -iTsFormat:"yyyy-MM-dd hh:mm:ss.ll" -iCodepage:65001 -stats:OFF -rtp:-1
endlocal
exit /b 0
Теперь по поводу вопроса из PM:
Цитата:
И ещё вопрос, можно сделать так чтобы скрипт составлял список какие файлы были открыты и сколько раз, а не искал кол-во повторений по отдельности для каждого документа...
|
Можно (полагаю, даты интервала при этом остаются в силе?). Достаточно просто убрать условие для отбора документа. Ну, и ещё можно добавить сортировку, скажем, по количеству:
читать дальше »
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFile=E:\Песочница\0336\StatDocsView3kv.txt
set sFromDateTime=2013-08-05
set sToDateTime=2013-08-15
"%ProgramFiles%\Log Parser 2.2\LogParser.exe" "SELECT Field2 AS [Document ID], COUNT([Document ID]) AS [Total] USING Field1 AS Date INTO DATAGRID FROM '%sSourceFile%' WHERE 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:tab -headerRow:OFF -iTsFormat:"yyyy-MM-dd hh:mm:ss.ll" -iCodepage:65001 -stats:OFF -rtp:-1
endlocal
exit /b 0
Вот результат:
Ежели потребно что-то ещё, або как-то иначе — пишите.