0

尝试将我的 IIS 日志自动加载到 MSSQL 中,我编写了以下函数。

执行这个函数会弹出一个cmd提示符来执行logparser.exe,然后立即关闭。它保持打开的时间足以让我看到 logparser 帮助菜单。

但是,如果我删除“>> test.out”部分,它会按预期工作。

知道为什么吗?如您所见,我正在输出按预期正确形成的 shell 字符串。

Function RunLogParser(logFile) 

Dim oShell, iRC, ShellString 

WScript.Echo "Importing File " + logFile + vbCrLf



ShellString = """C:\Program Files\Log Parser 2.2\LogParser.exe"" ""SELECT * INTO weblog FROM " + logFile + """ " + " -i:W3C -o:SQL -server:localhost -database:testdb -driver:""SQL Server"" -createTable:OFF" + " >> test.out"



WScript.Echo vbTab + "Shell String " + ShellString + vbCrLf



     Set oShell =  WScript.CreateObject("WScript.Shell")



     iRC = oShell.Run(Shellstring, 1, True)        




     RunLogParser = (iRC=0)



RunLogParser = False

End Function
4

1 回答 1

0

要使用 shell 功能(>> 重定向),您需要一个 shell;所以在你的 ShellString 前面加上“%comspec% /c”。由于此命令的复杂性,可能需要进一步修改引号。

于 2012-06-01T18:49:46.133 回答