Tcl + 检查文件是不是存在

Posted

技术标签:

【中文标题】Tcl + 检查文件是不是存在【英文标题】:Tcl + Check file existenceTcl + 检查文件是否存在 【发布时间】:2011-05-10 09:59:56 【问题描述】:

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

while true 

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

    puts "File Not copied"

    

我总是执行文件未复制行。我为[file exists $file_name] 做了一个放置,我总是以 0 结尾。但我知道该文件存在于当前目录中。有什么建议吗?

编辑:

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

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

【问题讨论】:

那么你需要发出 ssh/ftp/whatever_protocol 命令来查询远程目录。 【参考方案1】:

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

你想要一个breakputs "File copied" 行之后,否则它会再次循环。你可能不想要那个!

【讨论】:

感谢多纳尔的回复。关于代码,我只是写了一些粗略的伪代码来暗示我在说什么。我会研究你建议的这两种方法..【参考方案2】:

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

【讨论】:

以上是关于Tcl + 检查文件是不是存在的主要内容,如果未能解决你的问题,请参考以下文章

测试 TCL 中是不是存在矩阵对象

获取Windows服务的Tcl脚本是否存在[关闭]

VB检查多个文件是不是存在

C语言,判断一个文件是不是存在

在VC里如何检查一个文件是不是存在

检查文件目录中是不是存在文件