willers
Goto Top

Batchdatei zum löschen von Dateien älter als...

Hallo zusammen,

ich weiß das das Thema schon duzent mal behandelt worden ist aber aus all den Beiträgen finde ich nichts für mein Problem.

Ich möchte von einem Server aus auf einem Netzlaufwerk in einem Ordner alle Dateien und Ordner löschen die älter als 5 Tage sind.
Hierbei sollte das Datum der Erstellung bzw. der letzten Änderung herangezogen werden. Am liebsten wäre mir das ganze wie gesagt als Batchdatei.


kann mir da jemand weiterhelfen ?


MfG

B.Willers
Kommentar vom Moderator Biber am Aug 10, 2010 um 14:28:55 Uhr
Ich verschieb den beitrag mal von "Windows-weiss-nich-genau" nach "Batch & Shell".

Falls dann auf DelAge32 oder WasFile.exe von Horst.S. verwiesen wird -> die zähle ich eigentlich zu den Batch-Hilfstools.

Content-Key: 148726

Url: https://administrator.de/contentid/148726

Printed on: April 20, 2024 at 03:04 o'clock

Member: Dirmhirn
Dirmhirn Aug 10, 2010 at 14:04:05 (UTC)
Goto Top
Hi!

delage32, teste ich grad lokal bei mir, und bis jetzt läufts ganz gut. Du kannst dateien löschen oder verschieben (hier werden aber keine Ordner gelöscht).
http://home.mnet-online.de/horst.muc/wbat32d.htm

sg Dirm
Member: Willers
Willers Aug 10, 2010 at 14:08:25 (UTC)
Goto Top
ich muss leider auch Ordner löschen.

aber trotzdem danke für deinen Tip
Member: bastla
bastla Aug 10, 2010 at 14:13:18 (UTC)
Goto Top
(hier werden aber keine Ordner gelöscht)
... wäre zu relativieren: mit "/rd" werden leere Ordner gelöscht ...

Grüße
bastla
Member: Biber
Biber Aug 10, 2010 at 14:25:39 (UTC)
Goto Top
[OT]
Moin Willers,

Zitat von @Willers:
ich weiß das das Thema schon duzent mal behandelt worden ist
Ja, hätten wir es denn siezen sollen?
Wir duzen jeden hier im Forum...
[/OT]
Member: Dirmhirn
Dirmhirn Aug 10, 2010 at 14:53:37 (UTC)
Goto Top
Zitat von @Willers:
ich muss leider auch Ordner löschen.

aber trotzdem danke für deinen Tip

war nur aufs verschieben bezogen - aber ev. gilts überhaupt nur fürs simulieren, schaus dir einfach mal an.

sg Dirm
Member: bastla
bastla Aug 10, 2010, updated at Oct 18, 2012 at 16:43:05 (UTC)
Goto Top
Hallo Willers!

Eine angepasste (aber weitgehend ungetestete) Version des immer wieder mal zitierten VBScripts "DelOldScrap.vbs" von diesem Thread) könnte so aussehen:
' DelOldScrap.vbs <BelowFolder> <AgeInDays>  
Set myArguments = WScript.Arguments
If myArguments.Count <> 2 Then    
	Usage
    Wscript.Quit (1)
End if

Heute = FormatDateTime(Date, 2)
OldDate = DateAdd("d","-" & myArguments(1), Heute)  

Set objFS = CreateObject("Scripting.FilesystemObject")  
Base = myArguments(0)
If objFS.FolderExists(Base) Then
    DoFolder objFS.GetFolder(Base)
Else
    Usage
End If
MsgBox "Fertig."  

Sub DoFolder(Folder)
For Each File In Folder.Files
    'für "Erstellungsdatum" anstelle von "DateLastModified" "DateCreated" verwenden  
    If File.DateLastModified < OldDate Then File.Delete 
Next

For Each SubFolder In Folder.SubFolders
    'für "Erstellungsdatum" anstelle von "DateLastModified" "DateCreated" verwenden  
    If SubFolder.DateLastModified < OldDate Then
        WScript.Echo SubFolder.Delete
    Else
        DoFolder SubFolder
        If (SubFolder.SubFolders.Count + SubFolder.Files.Count) = 0 Then SubFolder.Delete 'leere Unterordner löschen  
    End If
Next
End Sub

Sub Usage
MsgBox "Usage: " & WScript.ScriptName & " StartPfad TageAnzahl", vbExclamation, "Argumente überprüfen ..."  
End Sub
Grüße
bastla
Member: Willers
Willers Aug 10, 2010 at 15:37:29 (UTC)
Goto Top
delage32 funktioniert super mit /rd

danke für die Infos

bis zum nächsten mal