谁能帮我写个AUTOIT3的脚本程序,可以遍历指定的文件夹及其子文件夹,然后输出里面所有图片文件的绝对路径

谁能帮我写个AUTOIT3的脚本程序,可以遍历指定的文件夹及其子文件夹,然后输出里面所有图片文件的绝对路径,第1张

#include <Array.au3>

#Include <File.au3>

Local $FileNumber = 0 记录数组维数,全局变量

Local $FileArray[1] 返回的文件名主数组(全路径),全局变量

Local $result = "result.txt"

FindFiles("G:\photo", "*.jpg") 这里改为你自己要遍历的文件夹

$FileArray[0] = $FileNumber

_ArrayDisplay($FileArray, "Pictures")调用“Array.au3”的子函数函数,显示整个数组信息

For $i = 1 To $FileNumber

FileWriteLine($result, $FileArray[$i])

Next

Func FindFiles($path,$filelx)

Local $filelist

Local $folders

Local $i,$j,$newpath

$filelist = _FileListToArray ($path,$filelx,1)

if not @error then

if $filelist[0]>0 Then

for $i=1 to $filelist[0]

$FileNumber = $FileNumber + 1

ReDim $FileArray[UBound($FileArray) + 1]

$FileArray[$FileNumber] = $path &"\" &$filelist[$i]

Next

EndIf

EndIf

$folders = _FileListToArray ($path,"*",2)

if Not @error Then

If $folders[0] >0 Then

For $j=1 to $folders[0]

$newpath = $path &"\" &$folders[$j]

FindFiles($newpath,$filelx)

Next

EndIf

EndIf

EndFunc

-----------------------------------------------------------------

结果在脚本程序目录下的result.txt文件里。

我来写个autoit 脚本吧 (autoit 3.3.6.1 汉化版 winxp home sp3 环境 编译运行通过)

来个效果图

一下是源代码

$dir = "D:\h"    需要查找的路径

$str = search($dir)        调用search函数查找路径

$arr = StringSplit($str, "|")    将search函数返回的字符串拆分成数组,数组元素就是一个文件的完整路径

$file = $arr    把数组arr复制给file使file成为和arr相同大小的数组,目的只是为了构造相同大小的数组

$j = 1

循环把 数组arr中

For $i = 1 To $arr[0]

$p = StringInStr($arr[$i], "\", 0, -1)    从路径尾部向前找到路径分割符"\"在字符串中的位置

$filename = StringMid($arr[$i], $p+1)    截取文件名

如果文件名中包含字符串FRA,则将其复制到数组file中

If StringInStr($filename, "FRA", 0) Then

$file[$j] = $arr[$i]

$j += 1

EndIf

Next

$n = $j - 1    循环结束后j-1的值就是含FRA的文件的个数

buf字符串的内容将会用来写入文件

$buf = "总共找到文件个数:" & $n & " 个" &@CRLF

循环将数组file中的路径拼接到buf上

For $j = 1 To $n

$buf &= $file[$j] & @CRLF

Next

在脚本所在目录创建统计报告.txt

$fp = FileOpen(@ScriptDir & "\统计报告.txt", 10)

FileWrite($fp, $buf)    把buf的内容写入统计报告.txt

FileClose($fp)    关闭fileopen函数打开的文件

Run(@WindowsDir & "\Notepad.exe " & @ScriptDir & "\统计报告.txt", "")用启动记事本打开生成的文件

递归查找函数,递归查找*.*,支持子目录,以字符串形式返回所有文件的路径

各路径之间用 竖线“|”隔开

Func search($path)

$ret = ""

$handle = FileFindFirstFile($path & "\*.*")

If $handle = -1 Then Return $ret

While 1

$file = FileFindNextFile($handle)

If @error Then ExitLoop

If @extended Then

$tmp = search($path & "\" & $file)

Else

$tmp = $path & "\" & $file

EndIf

If $tmp <> "" Then

If $ret = "" Then

$ret = $tmp

Else

$ret = $ret & "|" & $tmp

EndIf

EndIf

WEnd

Return $ret

EndFunc


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11760494.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存