Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Veraltete Dateien aus spezifischen Unterverzeichnissen löschen

Frage Entwicklung Batch & Shell

Mitglied: Worlddiver

Worlddiver (Level 1) - Jetzt verbinden

02.08.2012, aktualisiert 14:38 Uhr, 3574 Aufrufe, 5 Kommentare

Hallo allerseits
Leider bin ich trotz intensiver Suche auf dem Web und auch auf dieser Seite noch nicht auf die richtige Lösung gestossen. Ich kann mir aber nicht vorstellen, dass ich der einzige bin, der vor diesem Problem steht.
Nun zähle ich auf eure Hilfe.

Aus einzelnen Unterverzeichnissen sollte ich automatisch Dateien löschen können, die älter als eine bestimmte Zeitspanne sind.
Ich habe z.B. folgende Verzeichnisstruktur:

D: 
  \Hauptordner1 
               \Ordner1                  (namens "Temp") 
                       \Unterordner1 
                       \Unterordner2 
                       \UnterordnerN 
               \Ordner2 
                       \Unterordner1 
                       \Unterordner2 
                       \UnterordnerN 
               \OrdnerN 
                       \Unterordner1 
                       \Unterordner2 
                       \UnterordnerN 
  \Hauptordner2 
               \Ordner1                  (namens "Temp") 
                       \Unterordner1 
                       \Unterordner2 
                       \UnterordnerN 
               \Ordner2 
                       \Unterordner1 
                       \Unterordner2 
                       \UnterordnerN 
               \OrdnerN 
                       \Unterordner1 
                       \Unterordner2 
                       \UnterordnerN 
  \HauptordnerN
In der zweiten Ebene (Ordner) gibt es jeweils einen Ordner namens "Temp". IN diesem Temp-Ordner muss nun (in allen Unterordnern, die ganz unterschiedlich heissen können) nach Dateien mit einem bestimmten Namensmuster (z.B. Name*.zip und Name*.map) gesucht und DIE Dateien gelöscht werden, die älter als 10 Tage sind.

Die Crux an der Sache ist, das Namensmuster würde auch auf gleichnamige Dateien in Ordnern der zweiten Ebene greifen. Diese Dateien dürfen aber NICHT gelöscht werden. Weiter kommt hinzu, dass die Anzahl an "Hauptordner" (erste Ebene) und Unterordner (dritte Ebene) dynamisch wachsen kann.

Ich benötige also ein Script, welches automatisch in allen vorhandenen Hauptordnern nach dem Ordner "Temp" sucht und NUR dort die Dateien löscht, die dem Namensmuster entsprechen UND die älter sind als X Tage sind.


Ich hoffe, ich habe mich verständlich genug ausgedrückt und jemand von euch hier weiss mir einen Rat bzw. hat vielleicht gar ein fertiges Script!?


Schöne Grüsse aus der sonnigen Schweiz!
Mitglied: Chris85
02.08.2012 um 14:59 Uhr
Hi,

schau dir doch mal das Tool "Delage32" an. Das sollte deine Anforderungen erfüllen. Du musst dann nur noch ein kleines Script schreiben, welches Delage ausführt.

Über den Taskplaner kannst du den Aufruf dann auch automatisieren.

Gruß

Chris
Bitte warten ..
Mitglied: bastla
02.08.2012, aktualisiert um 15:09 Uhr
Hallo Worlddiver und willkommen im Forum!

Zum Thema "Löschen alter Dateien" solltest Du ausreichend Hinweise (gerade auch hier im Forum finden), daher nur zum "Abklappern" der richtigen Ordner:
for /d %%i in ("D:\*") do for /d %%a in ("%%i\Temp\*") do echo Bearbeite "%%a"
bzw einfacher, wenn jeweils der gesamte "Temp"-Ordner inkl Unterordnern gemeint ist:
for /d %%i in ("D:\*") do if exist "%%i\Temp\" echo Bearbeite "%%i\Temp"
Grüße
bastla
Bitte warten ..
Mitglied: Worlddiver
02.08.2012 um 16:22 Uhr
Hallo Chris85 und bastla

Vielen Dank für eure schnellen Antworten.
Beides habe ich tatsächlich im Forum gefunden, konnte es aber nicht auf meine Bedürfnisse ummünzen.

So gelangte ich bei der Suche nach "Delage32" nur auf eine ungültige Website und ging davon aus, das Tool gibt's nicht mehr.
Und bastla's Lösung mit der doppelten Verschachtelung ist nun nochmals einen Schritt weiter, als was ich bereits gefunden hatte. Auf die Idee bin ich (leider) nicht gekommen.

Beides zusammen konnte ich nun auf meine Bedürfnisse anpassen.
So funktioniert nun genau, was ich wollte:

for /d %%i in (D:\Hauptordner\*) do for /d %%a in ("%%i\Temp\*") do delage32 "%%a\Name*.zip" 10
Bonusfrage:
Gäb's jetzt noch ne Möglichkeit, die ggf. dadurch entstandenen leeren Unterverzeichnisse zu entfernen?
Die Unterverzeichnisse können u.U. nochmals ein weiteres Unterverzeichnis enthalten. Sofern dieses auch leer ist, dürfen beide gelöscht werden.


Gruss
Worlddiver
Bitte warten ..
Mitglied: bastla
02.08.2012 um 21:06 Uhr
Hallo Worlddiver!

Soferne alle unterhalb von "Temp" liegenden leeren Unterverzeichnisse gelöscht werden sollen, dann etwa so:
for /d %%i in (D:\Hauptordner\*) do for /f "delims=" %%u in('dir /s/b/ad "%%i\Temp"^|sort /r') do echo rd "%%u" 2>nul
Erklärung dazu: Es werden sämtliche Unterverzeichnisse mit "dir /s/b/ad" ermittelt und absteigend sortiert - damit werden zuerst die längsten Pfade (= am tieftsten in der Struktur liegenden Verzeichnisse) verarbeitet, wobei der Löschbefehl "rd" ohne Zusatz nur löscht, wenn das Verzeichnis leer ist; ansonsten würde die Meldung
Das Verzeichnis ist nicht leer.
ausgegeben, was aber durch Umleitung des Fehlerkanals nach "nul" unterbunden wird.

Damit Du Dir das zunächst einmal ansehen kannst, steht vor dem "rd" noch ein "echo", wodurch der Löschbefehl nur angezeigt wird ...

Grüße
bastla
Bitte warten ..
Mitglied: Worlddiver
03.08.2012 um 08:15 Uhr
Hallo bastla

Perfekt! Dein Script macht genau, was es soll.
Vielen Dank für die schnelle Hilfe!


Schöne Grüsse aus der Schweiz
Worlddiver
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell: Dateien nach Version löschen in mehreren Ordnern (4)

Frage von ImmerKind zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien mit Powershell löschen und nur leere (symbolische) Datei hinterlassen (6)

Frage von evolution zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (27)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...