Войти

Показать полную графическую версию : [решено] удаление старых файлов по маске


support23
26-04-2013, 14:59
Всем привет,
есть скрипт, который запускается командой call cscript//Nologo "%~dp0Clean.vbs" 30 "C:\Download"
(удаляет все файлы из каталога C:\Download старше 30 дней)
вопрос, как изменить его так, чтобы можно было задавать маску удаления для файлов ?



intDays = Int(Wscript.arguments.Item(0))
strFldr = Wscript.arguments.Item(1)

Set objFSO = CreateObject("Scripting.FileSystemObject")
DelOld strFldr, intDays

Function DelOld(sFldr, iDays)
On Error Resume Next
Dim oD, cF, cD, oI

Set oD = objFSO.GetFolder(sFldr)
Set cF = oD.Files
Set cD = oD.SubFolders

For Each oI In cF
If DateDiff("d", oI.DateLastModified, Now) > iDays Then
WScript.Echo oI.Path
oI.Attributes = 0
oI.Delete
End If
Next

For Each oI In cD
If DateDiff("d", oI.DateLastModified, Now) > iDays Then
WScript.Echo oI.Path
DelOld oI.Path, iDays
If oI.Size = 0 Then
oI.Attributes = 0
oI.Delete
End If
End If
Next
End Function

sunnykey
03-06-2013, 08:41
Добавь переменную

strMask= Wscript.arguments.Item(2)

И измени условие

For Each oI In cF
If (DateDiff("d", oI.DateLastModified, Now) > iDays) and (objFSO.GetExtensionName(oI)=strMask) Then
WScript.Echo oI.Path
oI.Attributes = 0
oI.Delete
End If
Next

теперь можешь запускать

call cscript//Nologo "%~dp0Clean.vbs" 30 "C:\Download" exe

З.Ы. Во втором условии WScript.Echo oI.Path считаю лишним (дублирует вывод первого условия)




© OSzone.net 2001-2012