求循环检测指定文件内数量并执行
本帖最后由 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)
WEnd求大神看看这样个这样实现,检测特定文件夹内数量,超过指定个数就指定执行删除,同时添加个白名单。例如:浏览器.lnk qq.lnk xxx.lnk等 白名单不检测。
例如:开机3分钟内循环检测。发现图标超过10个就执行,不超过就等待出现,3分钟内没没出现就退出。
看你也是动手动脑一天了,没人帮我来
#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 > $nMax Then
$nNow = 0
For $ii = 1 To $aFile
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 谢谢你确实弄了一天,10多小时间了没弄通也找不到相关的资料。感谢。 afan 发表于 2019-8-25 23:02
看你也是动手动脑一天了,没人帮我来
谢谢你确实弄了一天,10多小时间了没弄通也找不到相关的资料。感谢。 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 > $nMax Then
$nNow = 0
For $ii = 1 To $aFile
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配置文件么? 配置.ini 内容如下
[配置]
白名单=浏览器.lnk|qq.lnk|xxx.lnk
数量=5
au3文件修改相关变量
Local $nMax = IniRead('配置.ini', '配置', '数量', 5) ;最大数量
Local $sWNList = IniRead('配置.ini', '配置', '白名单', '') ;白名单,|间隔
都是最基础的东西,有问题看看帮助文档 好的谢谢您的帮助。
页:
[1]