2

我陷入了这个 logparser 困境的死胡同。所以除了这里没有其他地方可以去。

批处理文件 ( 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 文件 ( 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%  

列表文件 ( serverdrives.txt )

'SERV06F',SERV06F  
'SERV00F',SERV00F

日志文件示例内容 (* .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  

当我运行批处理脚本时,出现以下错误:

错误

Invalid output filename ""   
Invalid output filename ""  

有谁知道如何解决这个问题?

4

1 回答 1

1

吃晚饭的时候,一个答案突然出现在我身上。
我编辑了批处理和 SQL 文件。
见下文。

批处理文件 ( 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 文件 ( 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% 
于 2012-10-08T14:34:46.730 回答