找回密码
 加入
搜索
查看: 2426|回复: 6

即时搜索文件遇到困难了,请求帮助

[复制链接]
发表于 2008-5-21 23:39:01 | 显示全部楼层 |阅读模式
下面这个循环,是可以查找到发现的.bat文件;

我是这样做的,让循环一直进行的过程,然后我再向c:\下添加一个.bat文件,这个新添加进去的,在msgbox里显示不出来了?

请求帮助


HotKeySet("{F3}", "pause")
HotKeySet("{F4}", "xrun")
Global $Pause = 1

; 显示当前目录下的所有文件的文件名
$search = FileFindFirstFile("c:\*.bat")

; 检查搜索是否成功
If $search = -1 Then
        MsgBox(0, "错误", "无任何文件或文件夹与指定的搜索字符串匹配")
        Exit
EndIf

While 1
        ToolTip("正在查找中,按f3暂停,f4继续......")
        $file = FileFindNextFile($search)
        FileSetAttrib("c:\" & $file, "-shr")
        $var = StringRight($file, 4)
        $A = ".bat"
        If $var = $A Then
                MsgBox(0, "", $file)
        EndIf
WEnd

Func xrun()
        Global $Pause = 1
EndFunc   ;==>xrun

Func pause()
        Global $Pause = 0
EndFunc   ;==>pause


[ 本帖最后由 木纳 于 2008-5-23 11:06 编辑 ]
 楼主| 发表于 2008-5-22 12:05:52 | 显示全部楼层
这个真的那么难吗?
顶一下,期待高人出现......唉..学点东西真不容易
发表于 2008-5-22 13:20:03 | 显示全部楼层
因為你沒把FileFindFirstFile()寫在while中....
所以只會找一次而已..

試試這...
HotKeySet("{F3}", "pause")
HotKeySet("{F4}", "xrun")
Global $Pause = 1

While 1
        
        ToolTip("正在查找中,按f3 Pause,f4 Run......")
        $search = FileFindFirstFile("c:\*.bat")
        If $search > -1 Then
                $file = FileFindNextFile($search)
                FileSetAttrib("c:\" & $file, "-shr")
                $var = StringRight($file, 4)
                $A = ".bat"
                If $var = $A Then
                        MsgBox(0, "", $file)
                EndIf
        EndIf
WEnd

Func xrun()
        Global $Pause = 1
EndFunc   ;==>xrun

Func pause()
        Global $Pause = 0
EndFunc   ;==>pause


[ 本帖最后由 getcase 于 2008-5-22 13:21 编辑 ]
发表于 2008-5-22 18:58:37 | 显示全部楼层
[au3]HotKeySet("{F3}", "pause")
HotKeySet("{F4}", "xrun")
HotKeySet("{F5}", "quit")
Global $Pause = 1

; 显示当前目录下的所有文件的文件名
While 1
        $DATE = ""
        $search = FileFindFirstFile("c:\*.bat")
        ; 检查搜索是否成功
        If $search = -1 Then
                MsgBox(0, "错误", "无任何文件或文件夹与指定的搜索字符串匹配")
                Exit
        EndIf

        While 1
                If $Pause = 0 Then
                        $DATE = "暂停中....."
                        ExitLoop
                EndIf
                $file = FileFindNextFile($search)
                If @error Then ExitLoop
                FileSetAttrib("c:\" & $file, "-shr")
                $var = StringRight($file, 4)
                $A = ".bat"
                If $var = $A Then
                        $DATE = $DATE & $file & @CRLF
                EndIf
        WEnd
        ToolTip("正在查找中,按f3暂停,f4继续,F5结束..." & @CRLF & "结果:" & @CRLF & $DATE, 0, 0)
        Sleep(10)
WEnd
Func xrun()
        Global $Pause = 1
EndFunc   ;==>xrun

Func pause()
        Global $Pause = 0
EndFunc   ;==>pause

Func quit()
        Exit
EndFunc   ;==>quit[/au3]

评分

参与人数 1金钱 +2 收起 理由
木纳 + 2 感谢指正...谢谢

查看全部评分

 楼主| 发表于 2008-5-23 10:58:28 | 显示全部楼层

回复 3# getcase 的帖子

哥哥,始终找到的是第一个文件...以后加进去的,也不显示出来,
发表于 2008-5-23 12:42:31 | 显示全部楼层
原帖由 木纳 于 2008-5-23 10:58 发表
哥哥,始终找到的是第一个文件...以后加进去的,也不显示出来,


抱歉...一樣是要把FileFindNextFile()也放在while迴圈中來取得全部的檔案..
 楼主| 发表于 2008-5-24 14:13:10 | 显示全部楼层
谢谢getcase
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-17 06:17 , Processed in 0.074982 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表