jonathan.hij
jonathan.hij

Reputation: 45

Logparser: Looping filter multiple list and output to multiple files using list value as file name

I'm stuck on a dead end with this logparser dilemma. so there's no where else to go but here.

Batch file (disktrend.bat)

@echo off    
pushd "Program Files (x86)\Log Parser 2.2\"
for /f "tokens=1,2 delims=," %%A in (d:logs\serverdrives.txt) do @logparser -i:tsv file:D:\logs\disktrend.sql?sd=%%A -o:chart -charttype:line > D:\logs\%%B.gif  

SQL file (disktrend.sql)

SELECT date,pfree using to_int(sub(to_real(100),to_real(replace_chr(free,'%','')))) as pfree,replace_chr(strcat(server,drive),':','') AS serverdrive from d:\logs\compiled\*.log where serverdrive =%sd%  

List file (serverdrives.txt)

'SERV06F',SERV06F  
'SERV00F',SERV00F

Log file sample content (*.log)

Date    Server  Drive   Free    Free Space  Total
20120914    SERV06      F:  79.55%  27619.02MB  34719.82MB
20120914    SERV00      F:  99.73%  34630.37MB  34723.81MB  

When I run the batch script, I get below error:

Error

Invalid output filename ""   
Invalid output filename ""  

Does anyone know how to solve this?

Upvotes: 2

Views: 1329

Answers (1)

jonathan.hij
jonathan.hij

Reputation: 45

while eating dinner an answer suddenly popped on me.
I edited the Batch and SQL files.
See below.

Batch file (disktrend.bat)

@echo off    
pushd "Program Files (x86)\Log Parser 2.2\"
for /f "tokens=1,2 delims=," %%A in (d:logs\serverdrives.txt) do @logparser -i:tsv file:D:\logs\disktrend.sql?sd=%%A+filen=%%B -o:chart -charttype:smoothline -q:off -stats:off

SQL file (disktrend.sql)

SELECT to_string(date),pfree using to_int(sub(to_real(100),to_real(replace_chr(free,'%','')))) as pfree,replace_chr(strcat(server,drive),':','') AS serverdrive into d:\logs\%filen%.gif from d:\logs\compiled\*.log where serverdrive =%sd% 

Upvotes: 1

Related Questions