13gu 发表于 2016-3-4 10:00:03

请教 AU3遍历并删除文件

比如说C:/有文件夹
C:/123   C:/225   C:/323   C:/423   C:/523   C:/623   ...
都有相同的文件C:/*23/1.txt请问一下代码要怎么写?
谢 谢

chamlien 发表于 2016-3-4 10:11:19

回复 1# 13gu For $i = 1 To 9 ; 123 - 923文件夹
        FileDelete("C:\" & $i & "23\1.txt")
Next基础语法要先看帮助文档

13gu 发表于 2016-3-4 10:17:53

回复 2# chamlien


    For $i = 1 To 9 ; 123 - 923文件夹
如果这个文件名和长度不确定怎么写,
比如说不是1到 9
谢 谢

afan 发表于 2016-3-4 10:22:16

...
FileFindFirstFile('C:/*23/1.txt')
FileFindNextFile(
...

13gu 发表于 2016-3-4 10:28:31

回复 4# afan


    还是没有看懂。。。

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)

13gu 发表于 2016-3-4 10:34:48

好的,谢 谢

13gu 发表于 2016-3-4 11:43:48

老大,试了好几次都不会删除,WIN7系统。。。。

afan 发表于 2016-3-4 12:17:42

回复 8# 13gu


    跟系统没关吧,仔细核对自己代码中的路径。
BTW, 自己的主贴要点击回复或引用他人的贴 别人才能收到信息 及时跟帖

zghwelcome 发表于 2016-3-4 15:09:37

学习了,不错啊

zghwelcome 发表于 2016-3-4 15:19:12

{:face (356):}
结合批处理,一行代码解决
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)

13gu 发表于 2016-3-4 16:51:56

本帖最后由 13gu 于 2016-3-4 16:53 编辑

回复 11# zghwelcome


    非常感谢,能不能再问一个问题,如果文件夹名是不规则的要怎么写比较好?
C:/*.*.*.* 就是这样的文件夹名

13gu 发表于 2016-3-4 16:54:20

回复 9# afan


    好的,谢 谢

zghwelcome 发表于 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)

13gu 发表于 2016-3-5 10:38:13

回复 14# zghwelcome


    就是第一个意思,要删除C盘根目录文件夹里的1.txt
非常感谢,学习了不少东西
页: [1]
查看完整版本: 请教 AU3遍历并删除文件