[已解决]au3如何做到排除文件及文件夹删除排除外的东西!
本帖最后由 hxwb518 于 2010-9-25 12:33 编辑au3如何做到排除文件及文件夹删除排除外的东西!
如:D:\
1. 文件夹有 123 456 单机游戏 聊天工具 陪 睡 0 1 ------ 陪 睡 0 1 中间有空格
2. 文件有 网络.txt sp3.gho 神女.txt 王八蛋_的资料.doc
------ 神女.txt 王八蛋_的资料.doc 中间有空格和_
D盘除了以上文件还有其他的多余文件及文件夹。
如:不知道 在一起 wei.txt wangba.bat
除了1 和2之外的所有东西全部删除! 如何实现 期待! 本帖最后由 风行者 于 2010-9-24 15:42 编辑
未经测试,慎用
#include <File.au3>
#include <Array.au3>
Dim $File = ["123", "456", "单机游戏", "聊天工具", "陪 睡", "0 1", "网络.txt", "sp3.gho", "神女.txt", "王八蛋_的资料.doc"]
$FileArray = _FileListToArray("d:\")
For $i = 1 To $FileArray
$Index = _ArraySearch($File, $FileArray[$i])
If @error = 6 Then
$Attrib = FileGetAttrib("d:\" & $FileArray[$i])
FileSetAttrib("d:\" & $FileArray[$i],"-"&$Attrib)
If StringInStr($Attrib, "D") Then
DirRemove("d:\" & $FileArray[$i], 1)
Else
FileDelete("d:\" & $FileArray[$i])
EndIf
EndIf
Next 回复 2# 风行者
--------------------------------------------------------------------------
谢谢风行者,先测试先!{:face (356):} --------------------------------------------------------------
测试过了可以用,能不能 自定 设置排除的文件及文件夹呢?
$File 请问是什么意思!{:face (427):} #include <File.au3>
Local $sRandom1 = Random(), $sRandom2 = Random(), $sExclude
Local $sRoot, $aFile = ["123", "456", "sp3.gho", "0 1"]
For $i = 0 To UBound($aFile) - 1
$sExclude &= $sRandom1 & $aFile[$i] & $sRandom2
Next
$sRoot = "d:\"
$aFileList = _FileListToArray($sRoot)
For $i = 1 To $aFileList
If StringInStr($sExclude, $sRandom1 & $aFileList[$i] & $sRandom2) Then
ContinueLoop
EndIf
If StingInStr(FileGetAttrib($sRoot & $aFileList[$i]), "D") Then
DirRemove($sRoot & $aFileList[$i])
Else
FileDelete($sRoot & $aFileList[$i])
EndIf
Next {:face (356):}感谢楼主,无私的精神,值得我们学习! 还不错的样子~学习语法了~
感谢分享!! 未经测试,慎用
风行者 发表于 2010-9-24 14:02 http://www.autoitx.com/images/common/back.gif
---------------------------------------------------------------------------------------------------
这个文件必须放在指定的盘符才可以运行。 有时也是不执行文件删除功能!
能不能有个读取配置文件的,执行文件可以放在任意位置。这样更灵活一些! #include <File.au3>
#include <Array.au3>
Dim $File = ["A&A", "RECYCLER", "System Volume Information", "GTA Vice City User Files", "GTA3 User Files","Koei","My Games","My Music","My QQ Files","NBA LIVE 06","NBMSClient","NFS Most Wanted","tool","yt560.GHO","休闲游戏","单机游戏","对战平台","影音软件","我接收到的文件","我的视频","棋牌游戏","游戏外挂","系统安装","系统更新","网络游戏","网页游戏","聊天工具","通用工具","金融证券","del.au3"]
$FileArray = _FileListToArray("e:\")
For $i = 1 To $FileArray
$Index = _ArraySearch($File, $FileArray[$i])
If @error = 6 Then
$Attrib = FileGetAttrib("e:\" & $FileArray[$i])
FileSetAttrib("e:\" & $FileArray[$i],"-"&$Attrib)
If StringInStr($Attrib, "e") Then
DirRemove("e:\" & $FileArray[$i], 1)
Else
FileDelete("e:\" & $FileArray[$i])
EndIf EndIf
Next
------------------------------------------------------------------------------------------------------------------------------------------
在C盘执行, 应该是排除E盘的文件。把我C盘所有的文件都删除了!{:face (229):}
而E盘文件夹排除之外的也没有删除。文件排除在内的也一样删除 文件本身! 也是未经测试,慎用
#include <File.au3>
#include <Array.au3>
Dim $File = IniReadSection("FileDel.ini","file")
Dim $Drive = IniRead("FileDel.ini","drive","lab","")
$FileArray = _FileListToArray($Drive)
For $i = 1 To $FileArray
$Index = _ArraySearch($File, $FileArray[$i])
If @error = 6 Then
$Attrib = FileGetAttrib($Drive & $FileArray[$i])
FileSetAttrib($Drive & $FileArray[$i],"-R",1)
If StringInStr($Attrib, "D") Then
DirRemove($Drive & $FileArray[$i], 1)
Else
FileDelete($Drive & $FileArray[$i])
EndIf
EndIf
Next
FileDel.ini 配置文件
lab=d:\
F1=123
F2=456
F3=单机游戏
....后面自己添加 感谢楼主,无私的精神,值得我们学习!
hxwb518 发表于 2010-9-24 14:24 http://www.autoitx.com/images/common/back.gif
晕,你自己就是楼主…
另外,建议多看看P版的代码,效率会更高些~ 回复 11# afan
嘿嘿,你好,请问什么是P版~! {:face (356):} 回复 12# hxwb518
5楼 pusofalse 超级版主 —— 论坛里的大神,他的帖子含金量极高,别的我就不多说了~
页:
[1]