使用vbs腳本定時刪除n天前的文件
來源:易賢網(wǎng) 閱讀:1175 次 日期:2016-06-30 09:26:24
溫馨提示:易賢網(wǎng)小編為您整理了“使用vbs腳本定時刪除n天前的文件”,方便廣大網(wǎng)友查閱!

腳本放在定時任務(wù)里代替服務(wù)定時執(zhí)行一些操作比較方便,下面是實現(xiàn)刪除文件夾下n天前創(chuàng)建的文件的vbs腳本,在配置文件 delfolderlist.txt 中配置要刪除的文件路徑,only-del-files 下的路徑 是只刪除其下的文件,不刪除其內(nèi)的子目錄的文件。del-folder-files下的路徑 是刪除其內(nèi)文件及其子目錄內(nèi)的文件,子目錄為空時刪除目錄,刪除的文件list 放在log文件夾內(nèi)。例配置文件delfolder.txt 內(nèi)容如下:

only-del-files

e:\code\test

del-folder-files

e:\code\subfolder

腳本內(nèi)容:

代碼如下:

option explicit

dim mfso    '定義文件系統(tǒng)對象

dim wfso    '定義文件系統(tǒng)對象

dim filecount '文件計數(shù)

dim foldercount '文件夾計數(shù)

dim fstream    '定義讀文件流對象

dim wstream    '定義寫文件流對象

dim folder    '文件夾對象

dim rootfolder    '文件夾對象

dim file    '文件對象

dim subdirs     '文件夾集合對象

dim subdir        '文件夾對象

dim loopfolder    '文件夾對象

dim dopath    '路徑字符串

dim delflag

delflag =0  ' 0: 不刪除子目錄   ,1:刪除子目錄

dim wsh

set wsh=wscript.createobject(wscript.shell)'擊活wscript.shell對象

main()

sub main()

dim filename

filecount = 0

foldercount = 0

set mfso = createobject(scripting.filesystemobject)

set wfso = createobject(scripting.filesystemobject)

set fstream = mfso.opentextfile(delfolderlist.txt, 1)

filename=cstr(date)

filename=filename + _ + replace(cstr(time),:,_)

set wstream = wfso.createtextfile(log\ & filename & .log, true)

'循環(huán)讀取一行filelist.txt中的內(nèi)容

do while true <> fstream.atendofstream

   dopath = fstream.readline

   if dopath = only-del-files then

      delflag =0

   if true <> fstream.atendofstream then

   dopath = fstream.readline

   end if

   end if

   if dopath = del-folder-files then

      delflag =1

   if true <> fstream.atendofstream then

        dopath = fstream.readline

   end if

   end if

   if mfso.folderexists(dopath) then

       if 1 = delflag then ' 刪除子目錄

       set rootfolder=mfso.getfolder(dopath)

       wstream.writeline(rootfolder.path & 下刪除了以下文件:)

       del_file_subfolder rootfolder

       wstream.writeline(rootfolder.path & 下刪除了以下文件夾:)

       del_folderfunc rootfolder

    'del_folderfunc rootfolder

        wstream.writeblanklines(1) 

   else '只刪除文件

     set rootfolder=mfso.getfolder(dopath)

        wstream.writeline(rootfolder.path & 下刪除了以下文件:)

        del_file rootfolder

        wstream.writeblanklines(1)

   end if

   else

        wsh.popup(文件夾“ & dopath &”不存在或路徑錯誤)

        wstream.writeline(文件夾“ & dopath &”不存在或路徑錯誤)

    end if

loop

fstream.close

    

'wsh.popup(共刪除文件 & filecount & 個、文件夾 & foldercount & 個)

end sub

sub del_file(folder)

    dim df        '標記

    for each file in folder.files

        df=datediff(d,file.datecreated,now)

        if (df>1) then '1天前的文件

            wstream.writeline(folder.path & \ & file.name & vbtab & file.datecreated)

            file.delete()

            filecount=filecount+1

        end if

    next

end sub

''刪除文件 同時刪除subfolder

sub del_file_subfolder(folder)

    dim df        '標記

    for each file in folder.files

        df=datediff(d,file.datecreated,now)

        if (df>1) then

            wstream.writeline(folder.path & \ & file.name & vbtab & file.datecreated)

            file.delete()

            filecount=filecount+1

        end if

    next

    '遞歸調(diào)用del_file函數(shù),實現(xiàn)子目錄文件的遍歷刪除

    if (0 < folder.subfolders.count ) then

        for each loopfolder in folder.subfolders

        del_file_subfolder loopfolder

        next

    end if

end sub

sub del_folderfunc(folder)

    dim loopsub

    dim tmp

    if 0=folder.subfolders.count then    '判斷其下是否還有子文件夾,若無

        if 0=folder.files.count then    '如果其下還有文件則退出(符合條件的文件上一步已刪掉了)

            if ucase(folder.path)<>ucase(dopath) then    '判斷是否為根目錄,是則退出,不是則刪除

                wstream.writeline(folder.path & vbtab & folder.datecreated)

                folder.delete

                foldercount=foldercount+1

                 '' del_folderfunc(mfso.getfolder(delfolderpath))        '刪除該文件夾后從根目錄重新檢查,以檢查其父目錄是否該刪除

            end if

        end if

    else

        for each subdir in folder.subfolders    '還有子文件夾則輪循每一個子文件夾

            del_folderfunc(subdir)

        next

    end if

end sub

更多信息請查看腳本欄目
易賢網(wǎng)手機網(wǎng)站地址:使用vbs腳本定時刪除n天前的文件
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇剩?/div>

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)