麻烦有空的大大们转换一下这段BAT为AU3
for %%a in (c d e f g h) do (for /f "delims=" %%b in ('dir/ad/s/b "%%a:\"^|findstr /i "\UptClt$"') do (
rd /s /q "%%b" >nul 2>nul
)) 搜索 C D E F G H 这几个盘符下所有文件夹,判断搜索出来的结果中是否带有 \UptClt$ 的关键字。如果有则删除该文件夹。所用到函数。
FileFindFirstFile
FileFindNextFile
根据上面两个函数中的例子搜索一个路径下的所有文件夹,得到文件夹名称后使用如下函数处理文件夹
StringInStr
DirRemove 有思路 但是换出来的就是不对 楼主的意思是用run运行dos命令?还是说用二楼的纯au3方法? 回复 3# ywc195
贴一下代码,让大家帮忙看看错误在哪里,共同学习解决问题不是很好吗? 把bit改成纯AU3模式运行,
我找找看之前的代码,感觉很乱,好像就没保存了 #RequireAdmin
#include <File.au3>
Local $DIRS=['C:','D:','E:','F:','G:','H:']
Local $DIRS_INDEX=0
Local $FILE
Local $FILE_NAME
For $DIRS_INDEX =0 To 5
GetDirList($DIRS[$DIRS_INDEX])
Next
Func GetDirList($DIRS_NAME)
Local $SHEARCH=FileFindFirstFile($DIRS_NAME&"\*.*")
If $SHEARCH<>-1 Then
While 1
$FILE_NAME = FileFindNextFile($SHEARCH)
If @error Then ExitLoop
$FILE=StringSplit($FILE_NAME,".")
If Not @error Then ContinueLoop;如果分割 . 号不错误,文件就是带有后缀,不是文件夹,跳过
If StringInStr($FILE_NAME,"UptClt")<>0 Then ;如果文件名中可以查到 文字
DirRemove($DIRS_NAME&"\"&$FILE_NAME)
EndIf
;_FileWriteLog("D:\DirList.LOG",$DIRS_NAME&"\"&$FILE_NAME)
GetDirList($DIRS_NAME&"\"&$FILE_NAME) ;递归调用,逐层进入子目录查询是否有符合的文件夹
WEnd
FileClose($SHEARCH)
EndIf
EndFunc
页:
[1]