这并不是所描述的问题,因为被调用的程序而不是参数包含一个空格。谷歌搜索“如果文件名包含空白,whshell.run 不起作用”让我来到这里。
当被调用的程序名称中包含空格时,需要三重引号。(开始和结束引号定义了一个带空格的字符串,并且封闭的双引号映射到该字符串中的单引号。)有两个工作示例。第一个使用三引号。第二个有效地删除了名称中的空白。非工作示例显示了不该做什么(以及我首先尝试的内容。)
' Drive D:\Program Files\Batch\Monitor.bat with no associated command window
Set WshShell = CreateObject("WScript.Shell")
' These methods work: (Select one)
Return = WshShell.Run("""D:\Program Files\Batch\Monitor.bat""", 0)
' Return = WshShell.Run("D:\.D-DISK\Monitor.bat", 0)
' Note: Here "D:\.D-DISK\Monitor.bat" is a symbolic link to
' "D:\Program Files\Batch\Monitor.bat"
' The following methods fail because of the space in the filename.
' WshShell.Run( chr(34) & D:\Program Files\Batch\Monitor.bat & Chr(34), 0 )
' Return = WshShell.Run("D:\Program Files\Batch\Monitor.bat", 0)
' Return = WshShell.Run(""D:\Program Files\Batch\Monitor.bat"", 0)
Set WshShell = Nothing