Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] удаление старых файлов по маске (http://forum.oszone.net/showthread.php?t=259447)

support23 26-04-2013 14:59 2139980

удаление старых файлов по маске
 
Всем привет,
есть скрипт, который запускается командой 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 2161188

Добавь переменную
Код:

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 считаю лишним (дублирует вывод первого условия)


Время: 08:15.

Время: 08:15.
© OSzone.net 2001-