运行此命令时出错,我不确定原因。
运行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为什么会发生这种错误?
答案 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""