天堂泪吻泪 发表于 2009-10-24 00:13:51

搜索文件时,出现死循环?

本帖最后由 天堂泪吻泪 于 2009-10-25 23:40 编辑

在下在搜索桌面的快捷方式时,搜索完了,还出现
这样的一个死循环?怎么会这样的?$link=FileFindFirstFile(@DesktopDir&"\*.lnk")
If $link=-1 Then
        MsgBox(64,"","Error")
        Exit
EndIf

While 1
        $link_name=FileFindNextFile($link)
        MsgBox(64,"",$link_name)
        If @error and $link_name="" Then ExitLoop
WEnd
FileClose($link)

netegg 发表于 2009-10-24 01:19:42

#         MsgBox(64,"",$link_name)
#         If @error and $link_name="" Then ExitLoop
把这两行调换一下位置,应该可以了

bing614 发表于 2009-10-24 08:22:10

#         MsgBox(64,"",$link_name)
#         If @error and $link_name="" Then ExitLoop
把这两行调换一下位置,应该可以了
netegg 发表于 2009-10-24 01:19 http://www.autoitx.com/images/common/back.gif
非常同意

天堂泪吻泪 发表于 2009-10-25 12:26:17

2# netegg

在下现在在工作的地方,不方便试!回家一定会试试看的!

还有一个问题,那为什么调换位置应该就可以呢?当文件搜索失败,@error=1,还有加了一个$link_name="",加了两个判断,While应该就会ExitLoop的了!
那有没有@error.和$link_name有没有为空!还是Then后面的ExitLoop没有生效!

破帽遮颜 发表于 2009-10-25 13:49:05

你这个@error错误码是获取msgbox的!不是FileFindNextFile

另外也没必要使用and $link_name=""

天堂泪吻泪 发表于 2009-10-25 23:40:21

5# 破帽遮颜

明白了,也就是说,@error在FileFindNextFile下面的话就会获取FileFindNextFile的错误码!

netegg 发表于 2009-10-26 00:59:03

你这么理解吧----按原来的顺序是指在退出循环之前不管有没有错都会有一个msgbox跳出来
不考虑使用子函数,脚本是一句一句按顺序执行的
页: [1]
查看完整版本: 搜索文件时,出现死循环?