开发者

Tcl + Check file existence

I'm trying to check if a file exists or not in Tcl, but I can't seem to get a true result. Even though I know it is present.

while {true} {

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

    puts "File Not copied"

    }

I always execute the File not copied line. I did a put for [file exists $file_name] and I always end up with 0. But I know for a fact that the file exists in the current directory. Any suggestions?

EDIT:

An alternative method that I'm trying to pursue, is that when I do a dir using the tcl script. I will get an output of all the files in the directory. I just need to match my file with the list outputted and satisfy the if when a match was found ...

I'm executing the scrip开发者_C百科t from Location A, but using the script to telnet to Location B. When I do a file exists, it checks Location A itself. This is my problem ... since I need to be searching in Location B ...


The file exists command always works with local filesystems. If you want to check whether a remote system has a file, you'll have to exp_send it some instructions to do the check for you. Unfortunately, I can't quite tell what you're talking to from your description, so I can't actually advise how to do it.

And you want a break after that puts "File copied" line otherwise it will all go round the loop again. You probably don't want that!


Donal reasonably mentioned exp_send as a vehicle to access a remote filesystem. If this is an FTP context, though, I prefer a (pure-Tcl-without-Expect) solution based on Tcl's FTP library; I find this more portable, understandable, and concise.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜