sunyelover 发表于 2023-5-2 21:47:47

通配符问题请教

本帖最后由 sunyelover 于 2023-5-2 22:48 编辑


我想删除一个文件夹下面的文件,
如C盘的1目录下的autoit12345目录下面的autoitss.dll

C:\1\autoit12345\autoitss.dll

这个难点在于文件夹autoit后面那组数字是随机的,不是固定的,需要通配符,这个通配符有点难,我不会。那个大佬会,帮忙写一下 谢谢

sunyelover 发表于 2023-5-2 22:06:52

本帖最后由 sunyelover 于 2023-5-2 22:26 编辑

在互联网找到一个,他是删除所有文件,我只想删除一个文件,



#include <File.au3>
$Path = "C:\1\";指定目录,路径自己改
$FileName = "autoit"
$Files = _FileListToArray($Path) ;获得指定目录下的文件
For $i = 1 To UBound($Files)-1
   If StringInStr($Files[$i], $FileName) Then
   FileDelete($Path & $Files[$i]) ;删除含有$FileName的文件
   EndIf
Next


3131210 发表于 2023-5-2 22:36:16

所以如果有多个你是打算删除哪一个??? 你的问题描述的也不清楚啊

#include <File.au3>
$Path = "C:\1\";指定目录,路径自己改
$FileName = "autoit"
$Files = _FileListToArray($Path) ;获得指定目录下的文件
For $i = 1 To UBound($Files)-1
   If StringInStr($Files[$i], $FileName) Then
   FileDelete($Path & $Files[$i]) ;删除含有$FileName的文件
    exitloop       ;删除一个后结束循环
   EndIf
Next

sunyelover 发表于 2023-5-2 22:48:27

就删除一个 ,autoitss.dll 文件即可

3131210 发表于 2023-5-2 23:01:30

本帖最后由 3131210 于 2023-5-2 23:05 编辑


#include <File.au3>

Local $Path = 'C:\1\';指定目录,路径自己改
Local $FileFolderName = 'autoit'
Local $FileName = 'autoitss.dll'

Local $aFileList = _FileListToArray($Path, $FileFolderName & '*', 2, 1)
If Not @error Then
        For $i = 1 To $aFileList
                If FileExists($aFileList[$i] & '\' & $FileName) Then
                        FileDelete($aFileList[$i] & '\' & $FileName)
                        ExitLoop                  ;删除一个文件后结束循环
                EndIf
        Next
EndIf

gyp2000 发表于 2023-5-2 23:12:13

先枚举autoit*目录,如果目录存在则检查目录下是否存在对应的DLL 如果存在则删除。

krznz 发表于 2023-5-3 10:55:11

用正则表达式不就可以实现通配符了

sunyelover 发表于 2023-5-3 13:08:19

3131210 发表于 2023-5-2 23:01
#include

Local $Path = 'C:\1\';指定目录,路径自己改


非常好,谢谢
页: [1]
查看完整版本: 通配符问题请教