2012-10-08 9 views
2

Я застрял в тупике с этой ловушарной дилеммой. так что больше некуда идти, но здесь.Logparser: Looping фильтрует множественный список и выводит на несколько файлов с использованием значения списка в качестве имени файла

Пакетный файл (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 содержание образец файла (* .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 "" 

Кто-нибудь знает, как решить эту проблему ?

+1

+1; Освежающий хорошо спроектированный вопрос от нового пользователя. Хотел бы я помочь, но я рисую пустую. – dbenham

+0

Спасибо за комплимент @dbenham. я уже поняла :) –

ответ

1

Во время обеда у меня неожиданно появился ответ.
Я редактировал файлы Batch и 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%