VBS zum Löschen von Dateien mit bestimmter Extension nach x Tagen

'DEL_X_DAYS_EXT_FILES.VBS
'
'Skript zum löschen von Dateien mit der Extension sExt im Pfad sDirectoryPath,
'die älter als iDaysOld Tage sind
'
'
'sDirectoryPath = Pfad zum Verzeichnis, in dem die zu löschenden Dateien liegen (ohne abschließnden Backslash)
'sExt = Extension, der Dateien, die gelöscht werden können/sollen
'iDaysOld = Angabe des Dateialters in ganzen Tagen

Option Explicit 
On Error Resume Next 
Dim oFSO, oFolder, sDirectoryPath 
Dim oFileCollection, oFile, sDir 
Dim iDaysOld, sExt


'Variablen definieren

sDirectoryPath = "D:\BACKUP"
sExt = "bak"
iDaysOld = 1


'Zugriff auf Ordner und Dateien

Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set oFolder = oFSO.GetFolder(sDirectoryPath) 
Set oFileCollection = oFolder.Files 

'Durchsuchen des Zielordners nach allen Dateien mit der Endung sExt
For each oFile in oFileCollection
	
	If LCase(Right(Cstr(oFile.Name), 3)) = sExt Then
 	
 		If oFile.DateLastModified < (Date() - iDaysOld) Then 'lösche Datei, wenn diese älter als iDaysOld Tage ist
 		'oFile.Delete(True) '----> Zeile ist nicht aktiv, bitte noch Dokemtarzeiehn davor herausnhemen!!!
		msgbox oFile.Name '----> Es wird nur der Name der zu löschenden Datei angezeigt!!
 		End If 
 
	End If   

Next 


'Variablen zurücksetzen

Set oFSO = Nothing 
Set oFolder = Nothing 
Set oFileCollection = Nothing 
Set oFile = Nothing 

VBS zum Ermitteln der neuesten Datei an einem Verzeichnis abhängig von der Extension

'Ermittlung der neuesten Datei mit Extension sExt im Pfad sPfath
'
'
'Das Skript durchsucht den gewünschten Pfad "sPath" nach Dateien mit der Extension "sExt"
'und gibt dann den kompletten Pfad mit Dateinamen von der neuesten Dateu aus sNewestFile

'Variablen für Pfad und Extension
'sPfad ohne abschließenden Backslash angeben
'sExt ohne Punkt davor angeben

sPath = "C:\Windows\System32"
sExt = "dll"


'Filesystemobject genereieren
Set oFSO = CreateObject("Scripting.FileSystemObject")


'Funtkion GetNewestFile ausführen
sNewestFile = GetNewestFile(sPath)


'Ausgabe der neuesten Datei
'Wenn keine Datei ermittelt werden konnte, dann auch melden

If sNewestFile <> "" Then
	WScript.Echo "Die neuste Datei mit der Extension " & sExt & " ist " & sNewestFile
Else
   	WScript.Echo "Verzeichnis ist leer"
End If


'Funktion NewestFile

Function GetNewestFile(ByVal sPath)

   sNewestFile = Null   ' initialisiere Wert

   Set oFSO = CreateObject("Scripting.FileSystemObject")
   Set oFolder = oFSO.GetFolder(sPath)
   Set oFiles = oFolder.Files

 ' Finde die neueste Datei unter allen anderen Dateien
For Each oFile In oFiles

	if lcase(oFSO.GetExtensionName(ofile)) = sExt then 'selektiere Dateien mit der gewünschten Endung aus
	On Error Resume Next

     		If IsNull(sNewestFile) Then
       			sNewestFile = oFile.Path
       			dPrevDate = oFile.DateLastModified
     			Elseif dPrevDate < oFile.DateLastModified Then
       			sNewestFile = oFile.Path
     		End If

	end if

     On Error Goto 0
   Next

   If IsNull(sNewestFile) Then sNewestFile = ""

   GetNewestFile = sNewestFile
End Function


“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)