Tcl +检查文件是否存在

时间:2010-11-15 18:42:06

标签: file tcl expect file-exists

我正在尝试检查Tcl中是否存在文件,但我似乎无法获得真实的结果。即使我知道它存在。

while {true} {

    if { [file exists $file_name] == 1} {               
        exp_send "copy file.txt destination \r"
        puts " File copied!"
    }

    puts "File Not copied"

    }

我总是执行File not copied行。我为[file exists $file_name]做了一个put,我总是以0结束。但我知道该文件存在于当前目录中。有什么建议吗?

修改

我正在尝试的另一种方法是,当我使用tcl脚本执行dir时。我将获得目录中所有文件的输出。我只需要将我的文件与输出的列表匹配,并在找到匹配时满足if ...

我正在从位置A执行脚本,但是使用脚本telnet到位置B.当我存在文件时,它会检查位置A本身。这是我的问题......因为我需要在位置B中搜索...

2 个答案:

答案 0 :(得分:7)

file exists命令始终适用于本地文件系统。如果要检查远程系统是否有文件,则必须exp_send给它一些指示以进行检查。不幸的是,我无法从你的描述中说出你在说什么,所以我实际上无法建议如何去做。

你希望在break行之后puts "File copied",否则它将全部绕过循环。你可能不希望这样!

答案 1 :(得分:0)

Donal合理地提到 exp_send 作为访问远程文件系统的工具。如果这是一个FTP上下文,我更喜欢基于Tcl的FTP库的(纯Tcl-without-Expect)解决方案;我发现这更容易,更容易理解,更简洁。