TCL列出了运行脚本的相对路径

时间:2016-02-09 10:29:33

标签: path tcl relative-path

我查找用于保存运行tcl脚本的当前路径的代码。我已经找到了一个代码,但它不起作用。

proc getScriptDirectory {} {
    set dispScriptFile [file normalize [info script]]
    set scriptFolder [file dirname $dispScriptFile]
    return $scriptFolder
}

有人有想法吗?

1 个答案:

答案 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
}

以这种方式执行此操作通常不会产生可变污染的重大问题,因为您可以在您定义的命名空间中使用变量,并且几乎总是在您需要时使用您定义命名空间