DevAdmin Blog

Blog di Ermanno Goletto (Microsoft MVP Directory Services - MCITP - MCTS - MCSA - MCP)
posts - 976, comments - 549, trackbacks - 8

My Links

News

Avatar

Curriculum Vitae

Visualizza il profilo di Ermanno Goletto su LinkedIn

Follow ermannog on Twitter


Il contenuto di questo blog e di ciascun post viene fornito “così come é”, senza garanzie, e non conferisce alcun diritto. Questo blog riporta il mio personale pensiero che non riflette necessariamente il pensiero del mio datore di lavoro.

Logo Creative Commons Deed


Server Infrastructure Days 2013 - Milano - 18 e 19 Giugno


Logo SysAdmin.it SysAdmin.it Staff


Logo TechNet Forum TechNet Italia @ForumTechNetIt Follow TechNet Forum on Twitter


Logo MVP

Article Categories

Archives

Post Categories

Blogs

Friends

Knowledge Base

MVP Sites

Resources

Script per l’eliminazione dei file obsoleti

Spesso capita di dover gestire il backup di alcuni file e di volere mantenere soltanto i più recenti.  Avevo già pubblicato uno script per eliminazione dei file obsoleti in nel post Clear dei file temporanei dell'utente in Windows XP, ma lo script proposto non è così “duttile” per gestire al meglio l’esigenze negli scenari di backup o mantenimento di file recenti.

In questo script VBS che scritto per queste situazioni è possibile specificare la directory in cui eliminare i file file con data creazione superiore ad un numero di giorni specificato e un numero minimo di file che si intende comunque mantenere (utile nel caso ad esempio una procedura di backup fallisse).

Esempio: cscript DeleteOlderFile.vbs  Path Days FilesToMaintain

 

Option Explicit
On Error Resume Next


If WScript.Arguments.Count <> 3 Then
  WScript.Echo "Error: Invalid number of parameters." & vbCrLf & _
               "Syntax:" & vbCrLf & _
               "DeleteOlderFiles pathDirectory days filesToMaintain"
  WSCript.Quit
End If

Dim pathDirectory
Dim days
Dim filesToMaintain

pathDirectory = WScript.Arguments(0)
days = Int(WScript.Arguments(1))
filesToMaintain = Int(WScript.Arguments(2))

Dim fso, folder, file, olderFilePath, count

Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(pathDirectory)
count=0

Do While folder.Files.Count > filesToMaintain
  olderFilePAth = GetOlderFile(folder)

  If olderFilePAth <> "" Then
    Set file = fso.GetFile(olderFilePath)
    If DateDiff("d", file.DateLastModified, Now) >= days Then
      file.Delete
      If Not fso.FileExists(olderFilePAth) Then
        count=count+1
      End If
    Else
   Exit Do
    End If
  Else
    Exit Do
  End If
Loop

WScript.Echo count & " files deleted."

Set fso = Nothing
Set folder = Nothing
Set file = Nothing

Function GetOlderFile(folder)
  Dim olderFile
  Set olderFile = Nothing
 
  Dim file

  For Each file In folder.Files
    If olderFile Is Nothing Then
      Set olderFile = file
    ElseIf olderFile.DateCreated > file.DateCreated Then
      Set olderFile = file
    End If
  Next

If olderFile Is Nothing Then
    GetOlderFile = ""
Else
    GetOlderFile = olderFile.Path
End If
End Function

Print | posted on Wednesday, March 14, 2012 9:30 PM | Filed Under [ Code, Snippets & Scripts IT ]

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 8 and 5 and type the answer here:

Powered by:
Powered By Subtext Powered By ASP.NET