I've done quite a bit of scripting but ran across something that baffles me. Trying to execute a file in a directory with a spaces in the path would bomb. I googled and found a thing that has me put  inside to fix it but it didn't work. Here is what i was trying to do, if there is no spaces in the path to the EXE including any directories, the script works fine. Here is an example to a path for an EXE c:\winnt\system32\Ica PassThrough\pn.exe. Here is the script code
Set wshShell = WScript.CreateObject ("WSCript.shell")
wshshell.run "c:\winnt\system32\Ica PassThrough\pn.exe", 6, True
set wshshell = nothing
Of course, this code would BOMB! The script would return an error complaining it couldn't find the file. Thanks to quick posting in the news://msnews.microsoft.public.windows.server.scripting newsgroup.
Al Dunbar, world famous fellow MVP posted the answer to my prayers!
Your .run command is trying to run something called "C:\winnt\system32\ica" and pass it a parameter called "PassThrough\pn.exe". This is the same thing you would get if you typed the following at a command prompt:
If the name of the file to run is actually "c:\winnt\system32\Ica PassThrough\pn.exe", you would enter it at the command prompt as:
The double quotes in your code do not form part of the filename string being passed to the .run method, they are required to indicate a literal string.
You can prove this is the case by changing your script to look like this:
> Set wshShell = WScript.CreateObject ("WSCript.shell")
> wshshell.run c:\winnt\system32\Ica PassThrough\pn.exe, 6, True
> set wshshell = nothing
Which will throw a syntax error (for rather obvious reasons). You need to pass a string that actually contains the quoted filename, which can be done this way:
> wshshell.run """c:\winnt\system32\Ica PassThrough\pn.exe""", 6, True
Within a literal string, a single double-quote character is represented by two double-quote characters. Notice the Three double quotes around the string, This worked! Thought I'd pass this tip along.