これは、パラメータではなく呼び出されたプログラムにスペースが含まれているという点で、説明されている問題とは異なります。「ファイル名に空白が含まれていると、whshell.runは機能しません」とグーグルで検索すると、ここに表示されます。
呼び出されたプログラムの名前にスペースが含まれている場合は、トリプルクォートする必要があります。(開始引用符と終了引用符は空白の文字列を定義し、囲まれた二重引用符はその文字列内の単一引用符にマップされます。)2つの実用的な例があります。1つ目は、三重引用符を使用します。2つ目は、名前から空白を効果的に削除します。動作しない例は、すべきでないこと(および私が最初に試したこと)を示しています。
' 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