Joudicek Jouda
Joudicek Jouda

Reputation: 792

How to call Run() with parameters

I've got this working line of code in Windows Batch

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

I would like to run it via VBScript. But I don't know how to pass the path in parameter which has a space inside.

I came up with something like this:

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

But there is an error:

expected: ')'

Upvotes: 12

Views: 86467

Answers (2)

db-user
db-user

Reputation: 51

I like to use the following system to embed quotes :

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

It's a lot easier to read.

Upvotes: 5

Karan
Karan

Reputation:

Within a literal string, a single double-quote character is represented by two double-quote characters. So try the following instead:

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

Upvotes: 19

Related Questions