找回密码
 加入
搜索
查看: 1949|回复: 3

[AU3基础] 麻烦高手看看我的代码 帮忙修改下

[复制链接]
发表于 2011-5-23 11:52:15 | 显示全部楼层 |阅读模式
本帖最后由 2482230 于 2011-5-23 21:29 编辑

这是个提取文件和文件夹的代码
文件夹列表
mywork┬AA001
      │  ├BB001
      │  │  └─bb.jpg  bb.png  ......
      │  ├BB001c
      │  │  └─bb.jpg  bb.png  ......
      │  ├BB001D
      │  │  └─bb.jpg  bb.png  ......
      │  ├BB001E
      │  │  └─bb.jpg  bb.png  ......
      │  └bb.jpg  bb.png  ......
      ├AA002
      │  ├BB002
      │  │  └─bb.jpg  bb.png  ......
      │  ├BB002c
      │  │  └─bb.jpg  bb.png  ......
      │  ├BB002D
      │  │  └─bb.jpg  bb.png  ......
      │  ├BB002E
      │  │  └─bb.jpg  bb.png  ......
      │  └bb.jpg  bb.png  ......
      ├AA...都是这种格式的

有如下问题

1:我把要提取的文件全部都复制出来到一个文件夹下了,然后再按照名字提取子目录下的文件出来,最后删除没有用的,有没有办法不用复制出来文件,直接提取子目录下的文件,因为文件夹比较多,提取出来非常占用空间,我改了好几次只能提取子目录下第一个文件夹里的文件。

2:我的思路:先探测文件夹下名字带有某某字母或数字或文字的文件夹,然后逐一进入每一个文件夹进行提取,这样应该不会很耗机器吧......

3:我现在的这段代码遇到文件比较多的时候最后删除不掉剩余多余的文件

4:如何能加入一个进度条,可以看到提取的进度,有时候提取文件多的话等的非常茫然,还以为机器死了呢,这个可以先不用解决,主要是能把上面的解决了。

麻烦高手帮忙改改 尽量把源码传上来我学习学习
#NoTrayIcon
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_outfile=MoveCopy.exe
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
Dim $search1, $search2
$Path1 = IniRead("Set.ini", "path", "1", "NotFound")
$Path2 = IniRead("Set.ini", "path", "2", "NotFound")
$Path3 = IniRead("Set.ini", "path", "3", "NotFound")

ToolTip(@CR & "  正在提取文件 请等待……  " & @CR, @DesktopWidth - 320, @DesktopHeight - 120)
$search1 = FileFindFirstFile($Path1)
If $search1 = -1 Then
        MsgBox(0, "错误", "没有文件/目录 匹配搜索")
        Exit
EndIf

While 1

        $file = FileFindNextFile($search1)
        If @error Then ExitLoop

        DirCopy($file, $Path3 & "\RECYCLER", 1)

WEnd


FileClose($search1)

FileChangeDir($Path3 & "\RECYCLER")
$search2 = FileFindFirstFile($Path2)
If $search2 = -1 Then
        MsgBox(0, "错误", "没有文件/目录 匹配搜索")
        Exit
EndIf

While 1
        $file1 = FileFindNextFile($search2)
        If @error Then ExitLoop

        FileMove($file1, $Path3, 9)
WEnd

FileClose($search2)


Sleep(1000)
DirRemove($Path3 & "\RECYCLER", 1)
ShellExecute($Path3)
Set.ini
[path]
1=AA*.*
2=*c.*
3=D:\100123
下面是我的文件  只提取   11\AA0011A\AA0011ss  下的 所有文件
http://u.115.com/file/dn683h41#Download
11.rar

提取码:dn683h41
发表于 2011-5-23 12:26:29 | 显示全部楼层
这样不是很明白,最好把你的文件夹打包发出来,说明一下你要提取什么文件,这样的话,大家都好解决点。
发表于 2011-5-23 12:53:28 | 显示全部楼层
http://www.autoitx.com/thread-480-1-1.html
看看这个帖子的代码,自己修改下,也许有用,这只是个通用代码,修改条件或者参数可以完成很多类似操作,当初发到论坛的时候没考虑很多,有机会改改,改成可自定义规则的
发表于 2011-5-23 15:49:36 | 显示全部楼层
做一个递归调用,判断子文件夹下的文件属性如果是文件夹,就自动访问文件夹下的路径,
else 复制动作
你代码我没看,但是如果你能做到访问子文件,但是不能访问子文件下的子文件应该是没有递归调用
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-14 14:48 , Processed in 0.087271 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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