我的剧本中有以下行
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?
答案 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一起正常工作。