3

Why can't i do this in TCL:

set path "|C:/Program Files/Example/My Program/prgrm.exe"

The string path will get the value:

"C:/Program".

But if I remove the spaces it will get the full path... Anyone got an idea?

Afra
  • 2,502
  • 3
  • 24
  • 27

1 Answers1

8

It's because the code for running a subprocess with pipe takes a Tcl list after the | character. Build and run it like this:

set path "C:/Program Files/Example/My Program/prgrm.exe"
set pipe [open |[list $path]]

(Later items in that list are the arguments to pass to prgrm.exe.)

Donal Fellows
  • 133,037
  • 18
  • 149
  • 215