0

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
4

1 に答える 1

0

シェル機能 (>> リダイレクト) を使用するには、シェルが必要です。そのため、ShellString の前に「%comspec% /c」を追加してください。このコマンドは複雑なため、引用符をさらに調整する必要がある場合があります。

于 2012-06-01T18:49:46.133 に答える