TCL:如何使用环境PATH变量执行程序

时间:2014-07-27 13:03:08

标签: variables path tcl exe environment

我的剧本中有以下行

exec $ :: env(PATH)/program.exe

在我的env PATH变量中,我有一个目录,我已经获得了这个可执行文件。例如: PATH env变量得到了其他 - D:\ my_program \ bin

我有错误:

错误:

couldn't execute C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;D:\my_program\bin;\program": no such file or directory

任何建议如何使用系统变量如tcl?

中的PATH执行.exe文件

由于

PS 好的,当我创建一个新的env变量(PATH1 - 没有任何其他路径,只有一个)并设置.exe文件路径时,它似乎工作。任何与PATH(有多个路径)的解决方案,首先不包括集D:\ my_program \ bin?

1 个答案:

答案 0 :(得分:1)

您应该只使用为此auto_execok制作的Tcl库函数。

试试这个:

exec {*}[auto_execok program.exe]

它会自动搜索PATH并使用exec构建正确的路径。

例如,要启动notepad.exe:

% auto_execok notepad.exe
C:/windows/system32/notepad.exe
% exec {*}[auto_execok notepad.exe]

要了解为什么需要{*},请查看http://wiki.tcl.tk/765。基本上auto_execok非常聪明,如果需要,可以返回列表,例如在Windows上运行start,需要扩展才能与exec一起正常工作。