2017-04-21 103 views
0

我知道這裏有一些答案,但我不確定爲什麼答案不起作用。我會列出我所做的。VBScript輸出shell.run記錄文件

基本上我想從shell.Run命令中記錄信息到日誌文件中。

我有什麼

Dim WshShell 
Dim WshProcEnv 

Set WshShell = CreateObject("WScript.Shell") 

WshShell.Run """C:\Program Files\Folder\batchFile.bat""", 1, TRUE 

成功地運行該批處理文件。

所以看着像this one我曾嘗試以下答案:

WshShell.Run "cmd /c C:\Program Files\Folder\batchFile.bat > C:\Program Files\Folder\log.txt", 1, TRUE 

WshShell.Run "cmd /c ""C:\Program Files\Folder\batchFile.bat > C:\Program Files\Folder\log.txt""", 1, TRUE 

WshShell.Run """cmd.exe /c ""C:\Program Files\Folder\batchFile.bat > C:\Program Files\Folder\log.txt""", 1, TRUE 

我相信這件事情小,因此爲什麼我已經問了一個新問題。

回答

1

您需要在包含空格的每個單獨路徑周圍加引號,而不是整個命令行。

WshShell.Run "cmd /c ""C:\Program Files\Folder\batchFile.bat"" > ""C:\Program Files\Folder\log.txt""", 1, True 

通常處理這樣的東西的最佳方式是把你的路徑變量和做一個用戶自定義引用函數引用:

Function qq(str) 
    qq = """" & str & """" 
End Function 

batchfile = "C:\Program Files\Folder\batchFile.bat" 
logfile = "C:\Program Files\Folder\log.txt" 

WshShell.Run "cmd /c " & qq(batchfile) & " > " & qq(logfile), 1, True 

與保持極大的幫助您語句可讀。