當前位置:成語大全網 - 新華字典 - 腳本編程(語言不限,最好不用編譯):實現遍歷某個目錄所有文件的文件名,將所要查找的信息輸出到文本文件

腳本編程(語言不限,最好不用編譯):實現遍歷某個目錄所有文件的文件名,將所要查找的信息輸出到文本文件

我來寫個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