Это не совсем описанная проблема, поскольку вызываемая программа, а не параметр, содержит пробел. Погуглив "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