VBScript输出shell.run到日志文件

时间:2017-04-21 14:15:32

标签: vbscript

我知道已经有一些答案,但我不确定为什么答案不起作用。我将列出我所做的事情。

基本上我想将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 个答案:

答案 0 :(得分: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

这有助于保持您的陈述可读。