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
它一些说明来为你做检查。不幸的是,我无法从你的描述中完全看出你在说什么,所以我实际上无法建议如何去做。
你想要一个break
在puts "File copied"
行之后,否则它会再次循环。你可能不想要那个!
【讨论】:
感谢多纳尔的回复。关于代码,我只是写了一些粗略的伪代码来暗示我在说什么。我会研究你建议的这两种方法..【参考方案2】:Donal 合理地提到 exp_send 作为访问远程文件系统的工具。但是,如果这是一个 FTP 上下文,我更喜欢基于 Tcl 的 FTP 库的(纯 Tcl-without-Expect)解决方案;我发现这更便于携带、易于理解和简洁。
【讨论】:
以上是关于Tcl + 检查文件是不是存在的主要内容,如果未能解决你的问题,请参考以下文章