Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 3623 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst For Schleife für Abgleich mit Text-Datei und Unterverzeichnisse (4)

Frage von grisur zum Thema Batch & Shell ...

Windows Server
gelöst Windows 2012R2 kann Datei nicht löschen (2)

Frage von Akcent zum Thema Windows Server ...

Batch & Shell
gelöst Löschen von Dateien nach bestimmten Zeitmuster (8)

Frage von NetzwerkDude zum Thema Batch & Shell ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Infineon TPMs unsicher!

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Firewall

PfSense Repository für Version 2.3.x

(2)

Information von Dobby zum Thema Firewall ...

LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(5)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Hardware

GPD Pocket: Winziger Laptop für Wenig Tipper

(1)

Information von pelzfrucht zum Thema Hardware ...

Heiß diskutierte Inhalte
Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (20)

Frage von sunics zum Thema Hosting & Housing ...

Windows 7
gelöst Windows 7 Anmeldedomäne festlegen (13)

Frage von flotaut zum Thema Windows 7 ...