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

[AU3基础] 求循环检测指定文件内数量并执行

[复制链接]
发表于 2019-8-25 14:19:17 | 显示全部楼层 |阅读模式
本帖最后由 netmaple 于 2019-8-25 20:03 编辑
Local $size, $Time
$size = DirGetSize(@DesktopDir & "\if\BackUp", 1)
$Time = TimerInit()

While 1
        If FileExists($size) <> 0 Or TimerDiff($Time) >= 3000 * 60 Then
                MsgBox(0, '', '文件数量以够可以执行其他程序了')
                ExitLoop
        EndIf
        Sleep(1000)
        MsgBox(0, "文件数量不够继续等待", $size[0])
WEnd
求大神看看这样个这样实现,检测特定文件夹内数量,超过指定个数就指定执行删除,同时添加个白名单。例如:浏览器.lnk qq.lnk xxx.lnk等 白名单不检测。
例如:开机3分钟内循环检测。发现图标超过10个就执行,不超过就等待出现,3分钟内没没出现就退出。

发表于 2019-8-25 23:02:47 | 显示全部楼层
看你也是动手动脑一天了,没人帮我来
#include <File.au3>

Local $aFile, $nMax = 5        ;最大数量
Local $sWNList = '浏览器.lnk|qq.lnk|xxx.lnk'        ;白名单,|间隔

Local $nNow, $ExitFlag
Local $hTimer = TimerInit()
Local $sPath = @DesktopDir & '\if\BackUp'
Local $s_WNList = StringRegExpReplace($sWNList, '[.+\-(){}[\]^$]', '\\$0')
While 1
        $aFile = _FileListToArray($sPath)
        If Not @error Then
                If $aFile[0] > $nMax Then
                        $nNow = 0
                        For $ii = 1 To $aFile[0]
                                If Not StringRegExp($aFile[$ii], '(?:' & $s_WNList & ')') Then
                                        $nNow += 1
                                        If $nNow > $nMax Then
                                                $ExitFlag = 1
                                                MsgBox(64, '超出', '当前已超出,删除:' & $sPath & '\' & $aFile[$ii])
;~                                                 FileDelete($sPath & '\' & $aFile[$ii])        ;删除
                                        EndIf
                                EndIf
                        Next
                        If $ExitFlag Then
                                MsgBox(0, '', '删除完毕,退出')
                                ExitLoop
                        EndIf
                EndIf
        EndIf
        If TimerDiff($hTimer) >= 60000 * 3 Then
                MsgBox(0, '', '时间已到,退出')
                ExitLoop
        EndIf
        Sleep(1000)
WEnd
Exit

评分

参与人数 1金钱 +30 收起 理由
netmaple + 30 很给力!

查看全部评分

 楼主| 发表于 2019-8-26 15:12:40 | 显示全部楼层
谢谢你确实弄了一天,10多小时间了没弄通也找不到相关的资料。感谢。
 楼主| 发表于 2019-8-26 15:14:06 | 显示全部楼层
afan 发表于 2019-8-25 23:02
看你也是动手动脑一天了,没人帮我来

谢谢你确实弄了一天,10多小时间了没弄通也找不到相关的资料。感谢。
 楼主| 发表于 2019-8-26 15:36:41 | 显示全部楼层
afan 发表于 2019-8-25 23:02
看你也是动手动脑一天了,没人帮我来

#include <File.au3>

Local $aFile, $nMax = 5        ;最大数量
Local $sWNList = '浏览器.lnk|qq.lnk|xxx.lnk'        ;白名单,|间隔

Local $nNow, $ExitFlag
Local $hTimer = TimerInit()
Local $sPath = @DesktopDir & '\if\BackUp'
Local $s_WNList = StringRegExpReplace($sWNList, '[.+\-(){}[\]^$]', '\\$0')
While 1
        $aFile = _FileListToArray($sPath)
        If Not @error Then
                If $aFile[0] > $nMax Then
                        $nNow = 0
                        For $ii = 1 To $aFile[0]
                                If Not StringRegExp($aFile[$ii], '(?:' & $s_WNList & ')') Then
                                        $nNow += 1
                                        If $nNow > $nMax Then
                                                $ExitFlag = 1
                                                MsgBox(64, '超出', '当前已超出,删除:' & $sPath & '\' & $aFile[$ii])
;~                                                 FileDelete($sPath & '\' & $aFile[$ii])        ;删除
                                        EndIf
                                EndIf
                        Next
                        If $ExitFlag Then
                                MsgBox(0, '', '删除完毕,退出')
                                ExitLoop
                        EndIf
                EndIf
        EndIf
        If TimerDiff($hTimer) >= 60000 * 3 Then
                MsgBox(0, '', '时间已到,退出')
                ExitLoop
        EndIf
        Sleep(1000)
WEnd
Exit

版主,这里的白名单跟检测数量可以转成ini配置文件么?
发表于 2019-8-26 15:50:05 | 显示全部楼层
配置.ini 内容如下

[配置]
白名单=浏览器.lnk|qq.lnk|xxx.lnk
数量=5

au3文件修改相关变量
Local $nMax = IniRead('配置.ini', '配置', '数量', 5)        ;最大数量
Local $sWNList = IniRead('配置.ini', '配置', '白名单', '')       ;白名单,|间隔

都是最基础的东西,有问题看看帮助文档
 楼主| 发表于 2019-8-26 19:35:51 | 显示全部楼层
好的谢谢您的帮助。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 08:42 , Processed in 0.075883 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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