VBS Script um bestimmte Dateien die älter als x Tage sind und im Namen -xyz- enthalten zu löschen
Hallo zusammen
Ich suche schon lange verzweifelt ohne Erfolg ein VBS Script, mit dem ich Dateien aus einem Ordner löschen kann,
die älter als x Tage sind und im Namen ein bestimmten Teil/Wort enthalten zB. *xyz*.
Wenn mir vieleicht jemand ein Beispiel hätte, um dieses Problem zu lösen, wäre ich sehr dankbar.
Ich darf nur ein VBS Skript verwenden, nichts anderes.
Grüsse NeoCrown
Ich suche schon lange verzweifelt ohne Erfolg ein VBS Script, mit dem ich Dateien aus einem Ordner löschen kann,
die älter als x Tage sind und im Namen ein bestimmten Teil/Wort enthalten zB. *xyz*.
Wenn mir vieleicht jemand ein Beispiel hätte, um dieses Problem zu lösen, wäre ich sehr dankbar.
Ich darf nur ein VBS Skript verwenden, nichts anderes.
Grüsse NeoCrown
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 174063
Url: https://administrator.de/contentid/174063
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo NeoCrown und willkommen im Forum!
ZB: Löschen von alten Dateien und Verzeichnissen per VBS mit Ausnahmen....
Grüße
bastla
ZB: Löschen von alten Dateien und Verzeichnissen per VBS mit Ausnahmen....
Grüße
bastla
Hallo NeoCrown!
Und die Umkehrung von
bekommst Du nicht selbst hin (Du hattest ja nur nach einem Beispiel gefragt)?
Im einfachsten Fall wäre das zB
oder (um nur solche zu "erwischen", bei denen der Suchbegriff am Anfang des Dateinamens steht)
Beides übrigens ungetestet ...
Grüße
bastla
Und die Umkehrung von
If InStr(1, Exclude, Datei.Name & "#", vbTextCompare) = 0 Then
Im einfachsten Fall wäre das zB
If InStr(1, Datei.Name, "Bookingsave2011", vbTextCompare) <> 0 Then
Suche = LCase("Bookingsave2011")
...
If LCase(Left(Datei.Name, Len(Suche))) = Suche Then
Grüße
bastla
Hallo NeoCrown!
Am leichtesten anpassbar sollte diese Version sein:
Grüße
bastla
Am leichtesten anpassbar sollte diese Version sein:
Set fso = CreateObject("Scripting.FileSystemObject")
Set WSHShell = WScript.CreateObject("WScript.Shell")
'On Error Resume Next '## während der Testphase kontraproduktiv ##
' * hier eigenen Bedürfnissen anpassen *
strOrdnerliste = "C:\Dokumente und Einstellungen\pweberling\Desktop\Ordnerliste.txt"
strAusschlussliste = "C:\Dokumente und Einstellungen\pweberling\Desktop\Ausschluss.txt"
Aufheben = 3 'Anzahl der Tage
' * Ende der Anpassungen *
Set objOrdnerliste = fso.OpenTextFile(strOrdnerliste)
Verzeichnis = Split(objOrdnerliste.ReadAll, vbCrLF)
objOrdnerliste.Close
Set objAusschlussliste = fso.OpenTextFile(strAusschlussliste)
Exclude = "#" & Replace(objAusschlussliste.ReadAll, vbCrLF, "#") & "#"
objAusschlussliste.Close
Heute = Date()
For n = 0 To UBound(Verzeichnis)
Set Ordner = fso.GetFolder(Verzeichnis(n))
DeleteInFolder(Ordner)
Next
Sub DeleteInFolder(Ordner)
Set Dateien = Ordner.Files
' Alle Dateien in diesem Ordner abklappern
For Each Datei In Dateien
If Datei.DateLastModified < (Heute - Aufheben) Then
'nur Dateien, deren Name nicht wie ein Eintrag der Ausschlussliste endet
'(für exakte Übereinstimmung - außer Groß-/Kleinschreibung - wäre
'"#" & Datei.Name & "#"
'zu verwenden)
If InStr(1, Exclude, Datei.Name & "#", vbTextCompare) = 0 Then
On Error Resume Next
WScript.Echo "-" &Datei.DateLastModified&" "&Datei.Path 'Datei.Delete
If Err And Err <> 70 Then MsgBox "Unerwarteter Fehler (Code=" & Err & ")", vbCritical: WScript.Quit
On Error Goto 0
End If
End If
Next
'Unterordner abklappern, DeleteInFolder rekursiv aufrufen
For Each Unter In Ordner.SubFolders
'nur Ordner, deren Name nicht wie ein Eintrag der Ausschlussliste endet
If InStr(1, Exclude, Unter.Name & "#", vbTextCompare) = 0 Then
DeleteInFolder(Unter)
If (Unter.SubFolders.Count + Unter.Files.Count) = 0 Then WScript.Echo "--"&Unter.Path 'Unter.Delete
End If
Next
End Sub
bastla