Brauche ein script zum löschen von ordner
Hi zusammen
ich brauche eure hilfe bei einem script
hier das script
mit dem script kann ich die dateien die älter als xy sind aus einem ordner und seinen unterordner löschen
aber die unterorder bleiben dann leer da.
meine frage ist wie kann ich es machen das auch die ordner gelöscht werden die keine dateien mehr haben.
ich brauche eure hilfe bei einem script
hier das script
'************************************************************
'
' Löscht alle Dateien, die seit einem bestimmten Datum
' nicht mehr geändert wurden
'
'************************************************************
Set fso = CreateObject("Scripting.FileSystemObject")
Set WSHShell = WScript.CreateObject("WScript.Shell")
On Error Resume Next
'******* hier eigenen Bedürfnissen anpassen *****************
dim Verzeichnis(2)
Verzeichnis(0) = "C:\Dokumente und Einstellungen\eub\Lokale Einstellungen\Temp"
Verzeichnis(1) = "C:\Dokumente und Einstellungen\eub\Lokale Einstellungen\Temporary Internet Files"
Verzeichnis(2) = "C:\Dokumente und Einstellungen\eub\Lokale Einstellungen\Verlauf"
Aufheben = 14 'Anzahl der Tage
'********Ende der Anpassungen********************************
for n=0 to 2
Set ordner = fso.GetFolder(Verzeichnis(n))
heute = Date()
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
on error resume next
datei.delete
if err and err<>70 then msgbox "Unerwarteter Fehler (Code="&err&")",16 : wscript.quit
on error goto 0
End If
Next
Set untere = ordner.SubFolders
'Unterordner abklappern, DeleteInFolder rekursiv aufrufen
For Each unter In untere
DeleteInFolder(unter)
Next
End Sub
mit dem script kann ich die dateien die älter als xy sind aus einem ordner und seinen unterordner löschen
aber die unterorder bleiben dann leer da.
meine frage ist wie kann ich es machen das auch die ordner gelöscht werden die keine dateien mehr haben.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 62318
Url: https://administrator.de/contentid/62318
Ausgedruckt am: 26.11.2024 um 01:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo MeiSeed und willkommen im Forum!
Du könntest nach dem rekursiven Aufruf von "DeleteInFolder" den Inhalt des eben behandelten Ordners überprüfen.
Anmerkung: Da Du übrigens "untere" anderweitig ohnehin nicht benötigst, wäre auch die direkte Verwendung der "SubFolders"-Aufzählung möglich.
Daraus ergäbe sich etwa folgender Code:
Grüße
bastla
Du könntest nach dem rekursiven Aufruf von "DeleteInFolder" den Inhalt des eben behandelten Ordners überprüfen.
Anmerkung: Da Du übrigens "untere" anderweitig ohnehin nicht benötigst, wäre auch die direkte Verwendung der "SubFolders"-Aufzählung möglich.
Daraus ergäbe sich etwa folgender Code:
...
Next
'Unterordner abklappern, DeleteInFolder rekursiv aufrufen
For Each unter In <b>ordner.SubFolders</b>
DeleteInFolder(unter)
<b> If (unter.SubFolders.Count + unter.Files.Count) = 0 Then
unter.Delete
End If</b>
Next
End Sub
Grüße
bastla