找回密码
 加入
搜索
查看: 3201|回复: 14

[AU3基础] 请教 AU3遍历并删除文件

  [复制链接]
发表于 2016-3-4 10:00:03 | 显示全部楼层 |阅读模式
比如说C:/有文件夹
C:/123   C:/225   C:/323   C:/423   C:/523   C:/623   ...
都有相同的文件C:/*23/1.txt  请问一下代码要怎么写?
谢 谢
发表于 2016-3-4 10:11:19 | 显示全部楼层
回复 1# 13gu
For $i = 1 To 9 ; 123 - 923文件夹
        FileDelete("C:" & $i & "23\1.txt")
Next
基础语法要先看帮助文档
 楼主| 发表于 2016-3-4 10:17:53 | 显示全部楼层
回复 2# chamlien


    For $i = 1 To 9 ; 123 - 923文件夹
如果这个文件名和长度不确定怎么写,
比如说不是1到 9
谢 谢
发表于 2016-3-4 10:22:16 | 显示全部楼层
...
FileFindFirstFile('C:/*23/1.txt')
FileFindNextFile(
...
 楼主| 发表于 2016-3-4 10:28:31 | 显示全部楼层
回复 4# afan


    还是没有看懂。。。
发表于 2016-3-4 10:32:19 | 显示全部楼层
回复 5# 13gu
Local $hSearch = FileFindFirstFile('C:\*23')
If $hSearch = -1 Then Exit MsgBox(48, '', '错误: 没有匹配搜索模式的目录')

Local $sFileName = '', $sFileX = ''
While 1
        $sFileName = FileFindNextFile($hSearch)
        If @error Then ExitLoop
        $sFileX = $sFileName & '\1.txt'
        If FileExists($sFileX) Then FileDelete($sFileX)
WEnd
FileClose($hSearch)
 楼主| 发表于 2016-3-4 10:34:48 | 显示全部楼层
好的,谢 谢
 楼主| 发表于 2016-3-4 11:43:48 | 显示全部楼层
老大,试了好几次都不会删除,WIN7系统。。。。
发表于 2016-3-4 12:17:42 | 显示全部楼层
回复 8# 13gu


    跟系统没关吧,仔细核对自己代码中的路径。
BTW, 自己的主贴要点击回复或引用他人的贴 别人才能收到信息 及时跟帖
发表于 2016-3-4 15:09:37 | 显示全部楼层
学习了,不错啊
发表于 2016-3-4 15:19:12 | 显示全部楼层

结合批处理,一行代码解决
RunWait(@ComSpec & ' /c for /f "delims=" %a in (' & "'dir /b/ad'" & ') do echo %~dpnxa|find "23">nul &&del /f/q "%~dpnxa\1.txt"',"c:",@SW_HIDE)
 楼主| 发表于 2016-3-4 16:51:56 | 显示全部楼层
本帖最后由 13gu 于 2016-3-4 16:53 编辑

回复 11# zghwelcome


    非常感谢,能不能再问一个问题,如果文件夹名是不规则的要怎么写比较好?
C:/*.*.*.* 就是这样的文件夹名
 楼主| 发表于 2016-3-4 16:54:20 | 显示全部楼层
回复 9# afan


    好的,谢 谢
发表于 2016-3-5 10:15:15 | 显示全部楼层
本帖最后由 zghwelcome 于 2016-3-5 10:21 编辑

回复 12# 13gu


你最终目的是什么,是要删除C盘根目录下文件夹里面的一个特定名字的文件吗?如果是,这么写
RunWait(@ComSpec & ' /c for /f "delims=" %a in (' & "'dir /b/ad'" & ') do if exist "%~dpnxa\1.txt" del /f/q "%~dpnxa\1.txt"',"c:",@SW_HIDE)
这里是假设要删除 C 盘根目录下文件夹里面的 1.txt,而二级目录以下的 1.txt不会被删除 ,
如 c:\test\1.txt  会被删除 ,而  c:\test\txt\1.txt 则不会被删除


如果要删除C盘目录下所有子目录的 1.txt
RunWait(@ComSpec & ' /c del /s/q/f 1.txt',"c:\",@SW_HIDE)
 楼主| 发表于 2016-3-5 10:38:13 | 显示全部楼层
回复 14# zghwelcome


    就是第一个意思,要删除C盘根目录文件夹里的1.txt
非常感谢,学习了不少东西
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-29 02:17 , Processed in 0.090033 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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