vbs 查找硬盤分區(qū)中指定擴(kuò)展名文件的實(shí)現(xiàn)代碼

字號(hào):


    代碼如下:
    on error resume next '忽略所有錯(cuò)誤
    dim filename '聲明變量
    dim re
    set re=new regexp '建立正則表達(dá)式對(duì)象實(shí)例
    re.pattern=^([a-z]|[a-z])+\:\\\w+\.vbs$
    if re.test(wscript.scriptfullname)=false then
    msgbox 請(qǐng)?jiān)诖疟P根目錄下運(yùn)行本程序,否則搜索結(jié)果可能會(huì)不正確!,,messagebox
    wscript.quit
    end if
    re.pattern=^([a-za-z0-9_]|[^\x00-\xff])+\.[a-za-z]{1,4}$ '聲明正則表達(dá)式的匹配模式,主要用來(lái)檢驗(yàn)用戶輸入的文件名是否正確
    do
    filename=inputbox(請(qǐng)輸入你要搜索的文件名:,messagebox)
    if filename= then wscript.quit '如果輸入為空則退出腳本
    if re.test(filename)=false then
    msgbox 請(qǐng)輸入合法的文件名!,,messagebox
    end if
    loop while re.test(filename)=false '直到用戶輸入正確的文件名時(shí)才跳出循環(huán)。
    set re=nothing
    dim ie
    set ie=wscript.createobject(internetexplorer.application) '建立ie對(duì)象,用來(lái)顯示搜索狀態(tài)
    ie.menubar=0 '不顯示ie對(duì)象菜單欄
    ie.addressbar=0 '不顯示ie對(duì)象地址欄
    ie.toolbar=0 '不顯示ie對(duì)象工具欄
    ie.statusbar=0 '不顯示ie對(duì)象狀態(tài)欄
    ie.fullscreen=1 '全屏化ie對(duì)象
    ie.width=640 '設(shè)置ie對(duì)象寬度
    ie.height=120 '設(shè)置ie對(duì)象高度
    ie.resizable=0 '設(shè)置ie對(duì)象大小是否可以被改動(dòng)
    ie.navigate about:blank '設(shè)置ie對(duì)象默認(rèn)指向的頁(yè)面
    ie.left=fix((ie.document.parentwindow.screen.availwidth-ie.width)/2) '設(shè)置ie對(duì)象左邊距
    ie.top=fix((ie.document.parentwindow.screen.availheight-ie.height)/2) '設(shè)置ie對(duì)象右邊距
    ie.visible=1 '設(shè)置ie對(duì)象是否可視
    with ie.document '以下為在ie對(duì)象中寫(xiě)入頁(yè)面,跟一般的html沒(méi)有區(qū)別
    .write <html>
    .write <head>
    .write <title>文件掃描狀態(tài)</title>
    .write <meta http-equiv=content-type content=text/html;charset=gb2312>
    .write <style><!--
    .write body { background:#000000;text-align:center;margin:0px auto; }
    .write * { font-family:arial;font-size:9pt;color:#00cc00;line-height:140%; }
    .write a:link,ahover,a:visited { text-decoration:none; }
    .write #scanstatus { text-align:left;margin:15px; }
    .write #header { width:100%;height:20px; }
    .write #middle { width:100%;height:50px; }
    .write #footer { width:100%;height:20px;text-align:right; }
    .write --></style>
    .write </head>
    .write <body scroll=no>
    .write <div id=scanstatus>
    .write <div id=header>正在啟動(dòng)搜索程序。。。</div>
    .write <div id=middle></div>
    .write <div id=footer><a href=# onclick=window.close()>退出程序</a></div>
    .write </div>
    .write </body>
    .write </html>
    end with
    '定義文件系統(tǒng)對(duì)象變量
    dim fso
    dim objfolder
    dim objsubfolders
    dim objsubfolder
    dim objfiles
    dim objfile
    dim objdrives
    dim objdrive
    dim objtextfile
    dim str:str=
    dim i:i=0 '計(jì)數(shù)器變量
    dim result
    result=e:\搜索結(jié)果.html '搜索結(jié)果保存文件變量
    '一個(gè)過(guò)程,用來(lái)遍歷硬盤文件
    function search(path)
    set objfolder=fso.getfolder(path) '獲得當(dāng)前路徑
    set objfiles=objfolder.files '獲得當(dāng)前路徑下的所有文件集合
    for each objfile in objfiles '開(kāi)始遍歷文件集合
    ie.document.getelementbyid(middle).innerhtml=objfile.path '用到ie對(duì)象的文檔對(duì)象模型,將當(dāng)前搜索的文件路徑寫(xiě)入id為middle的div中
    if objfile.name=filename then '如果當(dāng)前文件名與用戶輸入的文件名一致
    i=i+1 '計(jì)數(shù)器加一
    str=str & objfile.path & <br>
    set objtextfile=fso.opentextfile(result,2,true) '創(chuàng)建文本流對(duì)象,文件名為變量result所存儲(chǔ)的字符串
    objtextfile.write(str) '將變量str中的文件路徑寫(xiě)入html文件中
    objtextfile.close '關(guān)閉文本流對(duì)象
    set objtextfile=nothing '銷毀對(duì)象
    end if
    if i>0 then
    ie.document.getelementbyid(header).innerhtml=找到 & i & 個(gè)匹配,詳細(xì)信息已保存在 & result & 文件中。。。
    else
    ie.document.getelementbyid(header).innerhtml=正在執(zhí)行文件搜索。。。
    end if
    wscript.sleep(20)
    next
    set objsubfolders=objfolder.subfolders '得到當(dāng)前路徑下的所有文件夾的集合
    for each objsubfolder in objsubfolders '遍歷文件夾
    nowpath=path & \ & objsubfolder.name '得到新的文件路徑
    search nowpath '調(diào)用函數(shù)自身,從新的路徑開(kāi)始搜索
    next
    end function
    set fso=createobject(scripting.filesystemobject)
    set objdrives=fso.drives '取得當(dāng)前計(jì)算機(jī)的所有磁盤驅(qū)動(dòng)器
    for each objdrive in objdrives '遍歷磁盤
    search objdrive '調(diào)用函數(shù)
    next
    '結(jié)束時(shí)顯示的信息
    ie.document.getelementbyid(header).innerhtml=掃描已結(jié)束。。。
    if i>0 then
    ie.document.getelementbyid(middle).innerhtml=請(qǐng)打開(kāi) & result & 查看詳細(xì)搜索結(jié)果!
    else
    ie.document.getelementbyid(middle).innerhtml=沒(méi)有找到要搜索的文件!
    end if
    '銷毀對(duì)象變量,釋放內(nèi)存空間
    set objdrives=nothing
    set objfiles=nothing
    set objfile=nothing
    set objdrive=nothing
    set objfolders=nothing
    set objfolder=nothing
    set objsubfolders=nothing
    set objsubfolder=nothing
    set fso=nothing