IIS ログの MSSQL への読み込みを自動化しようとして、次の関数を作成しました。
この関数を実行すると、cmd プロンプトがポップアップして logparser.exe を実行し、すぐに閉じます。logparser のヘルプ メニューが表示されるまで、開いたままになっています。
ただし、「>> test.out」の部分を削除すると、期待どおりに動作します。
理由はありますか?ご覧のとおり、期待どおりに適切に形成されたシェル文字列を出力しています。
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