web-dev-qa-db-ja.com

パラメーターを指定してRun()を呼び出す方法

私はこのバッチのWindowsバッチで動作するコードを持っています

start "" /wait /i "C:\Program Files\Sandboxie\Start.exe" /box:NetBeans /wait "C:\Program Files\NetBeans 7.3\bin\netbeans64.exe"

VBScript経由で実行したいと思います。しかし、内部にスペースがあるパラメーターでパスを渡す方法がわかりません。

私はこのようなものを思いつきました:

Set objShell = CreateObject("Wscript.Shell")
objShell.Run("C:\Program Files\Sandboxie\Start.exe" /box:NetBeans /wait "C:\Program Files\NetBeans 7.3\bin\netbeans64.exe"), 1, True

ただし、エラーがあります。

予想: ')'

12
Joudicek Jouda

リテラル文字列内では、単一の二重引用符は2つの二重引用符で表されます。そのため、代わりに以下を試してください。

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run """C:\Program Files\Sandboxie\Start.exe"" /box:NetBeans /wait ""C:\Program Files\NetBeans 7.3\bin\netbeans64.exe""", 1, True
Set objShell = Nothing
19
Karan

次のシステムを使用して引用符を埋め込むのが好きです:

strCommand = Quotes("C:\Program Files\Sandboxie\Start.exe") & _
         " /box:NetBeans /wait " &                            _
         Quotes("C:\Program Files\NetBeans 7.3\bin\netbeans64.exe")

Function Quotes(ByVal strValue)
    Quotes = Chr(34) & strValue & Chr(34)
End Function

読みやすくなっています。

6
db-user