Hello Everybody,
each minute I produce this log file:
Heap_summary_information_2010-09-29-15.09.00.LOG
Heap_summary_information_2010-09-29-15.10.00.LOG
Heap_summary_information_2010-09-29-15.11.00.LOG
.................................
With inside this information:
Desktop Heap Information Monitor Tool (Version 8.1.2925.0)
Copyright (c) Microsoft Corporation. All rights reserved.
-------------------------------------------------------------
Session ID: 0 Total Desktop: ( 7360 KB - 11 desktops)
WinStation\Desktop Heap Size(KB) Used Rate(%)
-------------------------------------------------------------
WinSta0\Default 3072 4.1
WinSta0\Disconnect 64 4.0
WinSta0\Winlogon 128 9.7
Service-0x0-3e7$\Default 512 13.7
Service-0x0-3e4$\Default 512 1.8
Service-0x0-3e5$\Default 512 0.5
SAWinSta\SADesktop 512 0.5
__X78B95_89_IW\__A8D9S1_42_ID 512 0.4
Service-0x0-13280$\Default 512 1.4
Service-0x0-2f18567$\Default 512 1.3
Service-0x0-18b601$\Default 512 1.9
-------------------------------------------------------------
My goal is to build some report, 1 time at day, that read each row, and create multiple file like this
File 1:
WinSta0_Default_2010-09-29.txt
that contains:
Heap_summary_information_2010-09-29-15.09.00 WinSta0\Default 4.1
Heap_summary_information_2010-09-29-15.10.00 WinSta0\Default 4.1
Heap_summary_information_2010-09-29-15.11.00 WinSta0\Default 4.1
File 2:
WinSta0_Disconnect_2010-09-29.txt
that contains:
Heap_summary_information_2010-09-29-15.09.00 WinSta0\Disconnect 4.0
Heap_summary_information_2010-09-29-15.10.00 WinSta0\Disconnect 4.0
Heap_summary_information_2010-09-29-15.11.00 WinSta0\Disconnect 4.0
......
FILE n:
Service-0x0-18b601$_2010-09-29.txt
that contains:
Heap_summary_information_2010-09-29-15.09.00 Service-0x0-3e7$\Default 1.9
Heap_summary_information_2010-09-29-15.10.00 Service-0x0-3e7$\Default 1.9
Heap_summary_information_2010-09-29-15.11.00 Service-0x0-3e7$\Default 1.9
The word Default can be omitted
It's possible to do this work with a script?
Regards
Dario
Build Some Automatic Report
Moderator: DosItHelp
Re: Build Some Automatic Report
Unfortunately you didn't use code tags. Looks like the 8th line of the .log file is the first line you want to create a new file.
Try this
Regards
aGerman
Try this
Code: Select all
@echo off &setlocal
for %%a in (Heap_summary_information_*.LOG) do (
for /f "tokens=1* delims=:" %%b in ('findstr /n . "%%~a"') do (
if %%b geq 8 (
if %%b leq 18 (
for /f "tokens=4-6 delims=_-" %%d in ("%%~na") do (
for /f "tokens=1,3" %%g in ("%%c") do (
for /f "tokens=1* delims=\" %%j in ("%%g") do (
>>%%j_%%k_%%d-%%e-%%f.txt echo %%~na %%g %%h
)
)
)
)
)
)
)
Regards
aGerman
Re: Build Some Automatic Report
Code: Select all
@echo off
setlocal EnableDelayedExpansion
for %%i in (Heap_summary_information_*.LOG) do (
set "$i=%%~ni"& set "$t=!$i:~-19!"& set "$d=!$t:~,10!"
for /f "tokens=1-4 delims=\ " %%j in ('findstr /rc:"\.[0-9][0-9]*$" "%%i"') do (
>>"%%j_%%k_!$d!.txt" echo.!$i! %%j\%%k %%m
))
You can filter processed files by date via mask: "Heap_summary_information_2010-09-29*.LOG"
Re: Build Some Automatic Report
Instead of filtering a few hundred files at one time,
it may be feasible to copy/concatenate each log into a master file,
and then once a day filter only the master file instead of a few hundred mini log files.
The potential benefit is that the filtered output CANNOT get the events in the wrong date/time order.
I plead fear and ignorance here, but I am uncertain upon the order of file selection via
I look forward to expert comments upon my fear
Regards
Alan
it may be feasible to copy/concatenate each log into a master file,
and then once a day filter only the master file instead of a few hundred mini log files.
The potential benefit is that the filtered output CANNOT get the events in the wrong date/time order.
I plead fear and ignorance here, but I am uncertain upon the order of file selection via
Code: Select all
for %%i in (Heap_summary_information_*.LOG) do (lots of code)
I look forward to expert comments upon my fear
Regards
Alan
Re: Build Some Automatic Report
alan_b wrote:I plead fear and ignorance here, but I am uncertain upon the order of file selection viaCode: Select all
for %%i in (Heap_summary_information_*.LOG) do (lots of code)
I look forward to expert comments upon my fear
Regards
Alan
Hello Alan.
The order of file selection depends on the file system of the volume.
NTFS formatted volumes support sorting directory entries. That means the for loop returns the files in ascending order by names.
On FAT or FAT32 formatted volumes the for loop would return the files in the order they were added to the directory.
How ever, both would work for darioit's intention
Otherwise you could process the output of DIR with suitable options to make sure...
Regards
aGerman
Re: Build Some Automatic Report
aGerman wrote:Hello Alan.
The order of file selection depends on the file system of the volume.
NTFS formatted volumes support sorting directory entries. That means the for loop returns the files in ascending order by names.
On FAT or FAT32 formatted volumes the for loop would return the files in the order they were added to the directory.
Regards
aGerman
I now understand why I was unsure - I have had conflicting experiences.
Although I have XP in NTFS formatted C:\, I also have data partitions formatted as FAT32.
Thanks for explanation.
Alan