我查找用于保存运行tcl脚本的当前路径的代码。我已经找到了一个代码,但它不起作用。
proc getScriptDirectory {} {
set dispScriptFile [file normalize [info script]]
set scriptFolder [file dirname $dispScriptFile]
return $scriptFolder
}
有人有想法吗?
答案 0 :(得分:2)
info script
命令有效,但仅在脚本正在运行时才有效,而不是在其创建的过程正在运行时。您必须在代码运行时保存该值,以便以后可以使用它。
# The two-argument version of [variable] initialises the variable's value
variable dispScriptFile [file normalize [info script]]
proc getScriptDirectory {} {
variable dispScriptFile
set scriptFolder [file dirname $dispScriptFile]
return $scriptFolder
}
以这种方式执行此操作通常不会产生可变污染的重大问题,因为您可以在您定义的命名空间中使用变量,并且几乎总是在您需要时使用您定义命名空间