VBScript中的文件名字符串空间问题

时间:2017-04-28 10:50:57

标签: batch-file vbscript

运行此命令时出错,我不确定原因。

运行VBScript来执行bat文件,我想将任何错误消息输出到日志文件。所以要做到这一点,我有代码:

Set WshShell =  CreateObject("WScript.Shell")

WshShell.Run "cmd /k ""C:\ProgramTHISSTRING Files (x86)\Folder\File.bat"" > ""C:\Program Files(x86)\Folder\File.txt""", 1, True

(我确实有更优雅地执行此操作的代码,但出于问题的目的,我认为这样更好更快)

此外,我还故意将THISSTRING用于下面的错误。

执行此操作后,我在CMD中收到此错误

  

'C:\ ProgramTHISSTRING'无法识别为内部或外部命令,   可操作程序或批处理文件。

我理解文件名中的空格导致了错误,但是,我有正确的引用根据 this stackoverflow question为什么会发生这种错误?

1 个答案:

答案 0 :(得分:1)

我认为这里的问题是因为cmd /k需要传递给它的命令封装在双引号中。

所以命令(删除THISSTRING就像你说的那样只是为了触发错误)

WshShell.Run "cmd /k ""C:\Program Files (x86)\Folder\File.bat"" > ""C:\Program Files(x86)\Folder\File.txt""", 1, True

变为

WshShell.Run "cmd /k """"C:\Program Files (x86)\Folder\File.bat"" > ""C:\Program Files(x86)\Folder\File.txt""""", 1, True

并以

运行
cmd /k ""C:\Program Files (x86)\Folder\File.bat" > "C:\Program Files(x86)\Folder\File.txt""
相关问题