2009年1月13日 星期二

自動刪除七日前的檔案

最近剛好需要,上網有找到例子,可是沒法直接用,會出錯,只好再參考指令碼存放庫的sample,改了後終於可以用了,分享給大家囉!

下面這個例子是會刪除在c:\Downloads下7天前所建立,然後副檔名為txt文字檔囉,請複製後存成vbs的檔案就可以了,也可以用在DTS裡的ActiveX Script喔

'設定幾天前
beforDay = 7
'設定磁碟
strDisk = "C:"
'設定路徑
strPath = "\\Downloads\\"
'指定副檔名
strExFileName = "txt"

strComputer = "."
strDate = Date - beforDay
Set objWMIService = GetObject _
("winmgmts:\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
("Select * From CIM_DataFile Where CreationDate < '" & strDate & "'" & _

" AND Drive='" & strDisk & "' AND Path='" & strPath & "' AND Extension = '" & strExFileName & "'")
For Each objFile in colFiles
objFile.Delete
Next

備註 1
想知道CIM_DataFile這類別有哪些屬性可用,可參考CIM_DataFile ,比如說想把建立日(CreationDate)改成最後修改日期(LastModified)之類的

備註2
若想做到連c:\Downloads下子資料夾的檔案也一併刪除的話,其實很簡單,將那串SELECT中的path = 改成 path like ,strPath 後面接%即可,懂T-SQL的應該知道我在說什吧(Windows 2000不支援Like喔,20110427補充)

0 意見:

張貼留言