Re: Exec a program on Windows that contains ( ) in the filename



I'm glad it worked for you :)

I had a similar problem a while ago with exec, and that's how I worked
around it.

joiosoy@xxxxxxxxx wrote:
Thanks Paul, this approach actually worked!

Thanks to everybody who responded to the thread. After a lot of trial
and error, this was the only pure-tcl approach that worked.

walton.paul@xxxxxxxxx wrote:
You could do this, I think:

set token [open temp.bat w]
puts $token {"c:\Tcl\bin\a(b)\test.bat"}
close $token

exec temp.bat
file delete temp.bat

joiosoy@xxxxxxxxx wrote:
Hi,

Have been banging my head on this. I have not found a way of executing
a file that has parentheses in its name on Windows.

Say the file is "test.bat" and it lives in "c:\Tcl\bin\a(b)". It
contains: echo Hello

exec c:/Tcl/bin/a\(b\)/test.bat
'c:\Tcl\bin\a' is not recognized as an internal or external command,
operable program or batch file.

set f [open |c:/Tcl/bin/a(b)/test.bat] ; close $f
'c:\Tcl\bin\a' is not recognized as an internal or external command,
operable program or batch file.

set f [open |"c:/Tcl/bin/a(b)/test.bat"]; close $f
'c:\Tcl\bin\a' is not recognized as an internal or external command,
operable program or batch file.

exec {"c:/Tcl/bin/a(b)/test.bat"}
couldn't execute ""c:\Tcl\bin\a(b)\test.bat"": no such file or
directory

The weirdest of all:

cd c:/Tcl/bin/a(b)/
exec test.bat
'C:\Tcl\bin\a' is not recognized as an internal or external command,
operable program or batch file.

From the Windows command line:

C:\Documents and Settings\user\Desktop>c:\Tcl\bin\a(b)\test.bat
'c:\Tcl\bin\a' is not recognized as an internal or external command,
operable program or batch file.


But if we quote it:

C:\Documents and Settings\user\Desktop>"c:\Tcl\bin\a(b)\test.bat"

C:\Documents and Settings\user\Desktop>echo Hello
Hello


Any ideas? I am going crazy over this. This comes in part from people
installing programs on c:\Program Files (x64) on 64bit versions of
Windows

Thanks in advance for any insight you can provide

Daniel

.