找回密码
 加入
搜索
查看: 1700|回复: 7

[AU3基础] 求版主afan帮看一下循环检测中文件夹名称随机问题

[复制链接]
发表于 2019-8-28 10:31:33 | 显示全部楼层 |阅读模式
本帖最后由 netmaple 于 2019-10-11 18:26 编辑
#include <File.au3>



Local $aFile, $nMax = IniRead(@WorkingDir & '\配置文件.ini', '配置', '数量', '')

Local $sWNList = IniRead(@WorkingDir & '\配置文件.ini', '配置', '白名单', '')

Local $nNow, $ExitFlag

Local $hTimer = TimerInit()

;~ Local $sPath = @DesktopDir & '\if\BackUp'

Local $sPath = IniRead(@WorkingDir & '\配置文件.ini', '配置', '路径', '')

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)

WEn

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2019-8-28 10:45:29 | 显示全部楼层
首先要确定  $sPath 的真实路径

路径=C:\Users\ADMINI~1\AppData\Local\Temp    不要带后面的   n@
$aa = _FileListToArray (路径, 这里用 n@*)
$sPath = $aa[1]

后面就接上面的


看我的签名,不要私信提问,你还发那么多,是不是因为私信不能贴图才发帖的? 私信提问一概不回!
 楼主| 发表于 2019-8-28 12:20:38 | 显示全部楼层
没看懂啊这样执行不了
#include <File.au3>
Local $aFile, $nMax = IniRead(@WorkingDir & '\配置文件.ini', '配置', '数量', '')
Local $sWNList = IniRead(@WorkingDir & '\配置文件.ini', '配置', '白名单', '')
Local $nNow, $ExitFlag
Local $hTimer = TimerInit()


;~ Local $sPath = @DesktopDir & '\if\BackUp'
;~ Local $sPath = IniRead(@WorkingDir & '\配置文件.ini', '配置', '路径', '')

$aa = _FileListToArray(@TempDir & '\n@*')  ;===============>>这样修改执行部了啊
$sPath = $aa[1]

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
发表于 2019-8-28 12:22:48 | 显示全部楼层
netmaple 发表于 2019-8-28 12:20
没看懂啊这样执行不了

看帮助文档 _FileListToArray() 一万遍!
发表于 2019-8-28 17:28:09 | 显示全部楼层
afan 发表于 2019-8-28 12:22
看帮助文档 _FileListToArray() 一万遍!

a 大的神功原来是这样练成的?!
发表于 2019-8-28 17:38:54 | 显示全部楼层
本帖最后由 afan 于 2019-8-28 19:26 编辑
chishingchan 发表于 2019-8-28 17:28
a 大的神功原来是这样练成的?!

唉  恨铁不成钢

#include <File.au3>

Local $nMax = IniRead(@WorkingDir & '\配置文件.ini', '配置', '数量', '')
Local $sWNList = IniRead(@WorkingDir & '\配置文件.ini', '配置', '白名单', '')
Local $sPath = _FileListToArray(@TempDir, 'n@*')
If @error Then Exit MsgBox(48, '', '文件夹不存在,退出')
$sPath = @TempDir & '\' & $sPath[1]

Local $s_WNList = StringRegExpReplace($sWNList, '[.+\-(){}[\]^$]', '\\$0')
Local $hTimer = TimerInit()
Local $aFile, $ExitFlag = 0
While 1
        $aFile = _FileListToArray($sPath)
        If _CkDir($aFile, $nMax) Then ExitLoop
        If TimerDiff($hTimer) >= 60000 * 0.5 Then
                MsgBox(0, '', '时间已到,退出')
                ExitLoop
        EndIf
        Sleep(1000)
WEnd
Exit

Func _CkDir($aFile, $nMax)
        If Not IsArray($aFile) Then Return 0
        If $aFile[0] <= $nMax Then Return 0
        Local $nNow = 0
        For $ii = 1 To $aFile[0]
                If StringRegExp($aFile[$ii], '(?:' & $s_WNList & ')') Then ContinueLoop
                $nNow += 1
                If $nNow > $nMax Then
                        $ExitFlag = 1
                        MsgBox(64, '超出', '当前已超出,删除:' & $sPath & '\' & $aFile[$ii])
;~                         FileDelete($sPath & '\' & $aFile[$ii])        ;删除
                EndIf
        Next
        If $ExitFlag Then
                MsgBox(0, '', '删除完毕,退出')
                Return 1
        EndIf
        Return 0
EndFunc   ;==>_CkDir

评分

参与人数 1威望 +2 金钱 +50 贡献 +10 收起 理由
chishingchan + 2 + 50 + 10 赞一个!

查看全部评分

发表于 2019-8-29 01:24:56 | 显示全部楼层
不错支持一下
发表于 2019-9-6 00:08:37 | 显示全部楼层
不错支持一下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-25 17:43 , Processed in 0.082325 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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