Top-Themen

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 Batch zum löschen von Ordner die älter als 30 Tage sind

Mitglied: MrChaos

MrChaos (Level 1) - Jetzt verbinden

02.04.2008, aktualisiert 07.04.2008, 33125 Aufrufe, 8 Kommentare

Hallo Ihr alle,

ich möchte eine Batch Datei erstellen die mir Ordner samt Inhalt löscht die älter als 30 Tage sind.
Die Ordner liegen alle im Format JJJJMMTT vor.
Ich habe mich im Forum jetzt schon ein wenig umgeschaut und auch schon einige Beiträge gefunden die sich mit dem Thema beschäftigen.
Leider hat mir aber noch kein Beitrag so richtig weitergeholfen. Vermutlich liegt das aber auch an meinen Eingestaubten Fähigkeiten Batch Dateien zu erstellen.

Wie kann man das am besten realisieren?
Ich danke euch schon mal für eure Hilfe.

Gruß
Thomas
Mitglied: schregi82
02.04.2008 um 11:33 Uhr
Mit delage32.exe einfach umzusetzen:
http://home.mnet-online.de/horst.muc/wbat32d.htm

01.
delage32 Laufwerk:\Ordner\*.* 30 /recurse /rd

Interessant wäre was du mit älter als 30 Tage meinst.
Erstelldatum od. letzter Zugriff - den entsprechenden Schalter findest du auf der Website oben.

lg,
Bitte warten ..
Mitglied: MrChaos
02.04.2008 um 12:15 Uhr
also ... älter als 30 tage

ich habe Ordner die so aussehen

20080101
20080102
20080103
....
20080201
20080202
20080203
....
20080301
20080302
20080303
....

Diese Ordner werden täglich erstellt.
Ich möchte jetzt relativ zum heutigen Tag die Ordner löschen lassen die weiter als 30 Tage zurückliegen.
Sprich am 01.03.2008 sollen alle Ordner gelöscht werden die vor 01.02.2008 erstellt wurden.
Gadacht ist damit der Batch einmal pro Woche oder sogar Monat durchläuft und den "alten kram" löscht.
Hoffe das erklärt besser was ich mit 30 Tagen meine wenn nicht ... <- dann nochmal fragen
Bitte warten ..
Mitglied: Biber
02.04.2008 um 12:28 Uhr
Moin MrChaos,

DelAge32 wäre auch mein erster reflexartiger Tipp bei Deiner Anforderung.

Es sei denn, Du variierst die Strategie und definierst das Soll als "Es sollen immer die letzten 30 Sicherungsordner erhalten bleiben, alles andere kann wech."

Dazu haben wir in Batch & Shell auch ein paar Beispiele, die dann ohne externe Utilities funktionieren.

Sinngemäß so:
01.
for /f %%i in ('dir /ad /o-d /b x:\sichverz\200????? ^|more +30') do rd /s /q "x:\sichverz\%%i"
Bevor Du den einbaust, solltest Du es so am CMD-Prompt testen:
01.
for /f %i in ('dir /ad /o-d /b x:\sichverz\200????? ^|more +30') do @echo rd /s /q "x:\sichverz\%i"
Gruß
Biber
Bitte warten ..
Mitglied: MrChaos
02.04.2008 um 13:56 Uhr
@Biber
im Prinzip geht das sorum auch. Hauptsache die letzten 30 Sicherungen bleiben erhalten.

irgendwie ist da bei mir noch der Wurm drin.

ich habe jetzt den Verzeichnispfad angepasst. bzw auch ganz weggelassen da die bat im selben Ordner liegt wie die Testordner

geh ich richtig in der Annahme das ^|more +30' nur die Ordner anzeigen soll die älter als 30 Tage sind?
so mag es nicht funktionieren
Bitte warten ..
Mitglied: Biber
02.04.2008 um 14:21 Uhr
Moin MrChaos,

teste es schrittweise am CMD-Prompt:
01.
dir /ad /o-d /b x:\sichverz\200????? 
...das sollte alle Verzeichnisse mit der Namenskonvention "200?????" anzeigen sortiert nach Datum (die ältesten zuletzt).
Bei deiner (sinnvollen) Namenkonvention ginge natürlich auch eine Sortierung nach Name (also den Parameter /o-n statt /o-d setzen).

Wenn das bei Dir klappt, dann teste als nächstes
01.
dir /ad /o-d /b x:\sichverz\200????? |more +5
...das sollte alle Verzeichnisse wie oben bringen, aber die ersten 5 überspringen.
Wenn natürlich nur 3 oder 4 vorhanden sind, dann bleibt nichts zum Anzeigen übrig.

Diese Mimik habe ich oben in der FOR/F-Anweisung eingebaut.
Dazu muss das Pipe-Symbol "|" halt maskiert werden mit Caret "^" --->deshalb "^|".

Kommst du denn am CMD-Prompt zu den gleichen Ergebnissen wie ich?

P.S. Zur eigentlichen Frage:
nur die Ordner anzeigen soll die älter als 30 Tage sind
Nein, sondern nur die Ordner nach den ersten 30 vorhandenen Ordnern...
Strategie wäre ja jetzt: 30 Ordner will ich IMMER zur Sicherheit behalten (egal wie alt).

Grüße
Biber
Bitte warten ..
Mitglied: MrChaos
02.04.2008 um 15:00 Uhr
hey,
also ja ich habe das auch am cmd schritt für schritt durchprobiert.
okay das funktioniert auch.
die Sortierung
01.
dir /ad /o-n /b 
scheint am meisten sinn zu machen.(zumindest beim testen ;) )

kann ich das mit dem ^|more irgendwo nachlesen ?
warum muss das maskiert werden ?

fange gerade wieder an mich ein bisschen mit batch zu beschäftigen und will alles wissen in mich aufsaugen :D

Thomas
Bitte warten ..
Mitglied: Biber
02.04.2008 um 16:26 Uhr
Moin MrChaos,

warum muss das maskiert werden ?
Im Batch/am CMD-Prompt müssen wie in jeder anderen Skript-/Makro-/Programmiersprache alle Zeichen "maskiert" werden, die als Steuerzeichen besondere Bedeutung haben.

Einfaches Beispiel: (Befehl und Ausgabe am CMD-Prompt):
01.
>echo %windir% 
02.
C:\WINDOWS
Wenn Du aber als Ausgabe stehen haben willst:
Der Wert von %windir% ist C:\WINDOWS
...dann müsstest Du die ersten %-Zeichen maskiert eingeben.
01.
>echo Der Wert von ^%windir^% ist %windir%
Die Maskierung der Ein-/Ausgabe bei Echo und bei Pipe/Umleitungsaktionen ist der eine Fall,
der andere Fall ist die Übergabe/Delegierung eines (Teil-)Befehls an eine andere CMD-Instanz.
Und das passiert implizit bei jedem Befehl, der innerhalb einer FOR/F-Anweisung in einfachen Klammern steht.
Dann wird nämlich eine neue Instanz der CMD.exe eröffnet, die gefälligst diesen Befehl ausführen und das Ergebnis abliefern soll.
Im Beispiel oben wird also eine neue CMD.exe beauftragt:
"Hey, mach mir den ''dir /ad /o-d /b x:\sichverz\200????? |more +30'"
Der Befehl, der ausgeführt werden soll, ist also eigentlich ein Übergabe-Parameter und genau deshalb müssen evtl. vorhandene Steuerzeichen für die Dauer des Transports maskiert/sicher verpackt werden.
Und das Pipesymbol ("|") ist in diesem fall das zu maskierende Steuerzeichen, deshalb "^|".

Nachlesen kann man/frau es sicherlich auch irgendwo.... vielleicht postet eine/r der MitleserInnen noch einen Link.

Grüße
Biber
Bitte warten ..
Mitglied: MrChaos
07.04.2008 um 19:19 Uhr
Ich danke euch erstmal. das hat mir schon weitergeholfen ... bei weiteren Fragen komme ich gerne auf euch zurück

Gruß
Thomas
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Alle Datein löschen die älter als x Tage sind

Frage von Roadrunner0815Batch & Shell3 Kommentare

Hallo an Alle! Ich brauche mal einen kleinen Denkanstoß zu folgender Problemstellung Ich möchte: - auf einem Laufwerk K: ...

Windows 7

Alten Windows Ordner löschen

gelöst Frage von Power-PolerWindows 75 Kommentare

Mojen. Habe da ein Problem mit einen wirklich störrischen Windows Ordner. Will diesen löschen da er 16GB verbraucht und ...

Batch & Shell

Dateien (keine Ordner) löschen die älter sind als

gelöst Frage von siziigilendirmezBatch & Shell4 Kommentare

Guten Morgen ich möchte gerne mit einer power Shell Dateien löschen die älter als 30 tage sind. Die Dateien ...

Windows Server

Dateien in einem Ordner nach XY Tagen löschen

gelöst Frage von Adnan88Windows Server3 Kommentare

Hallo, ich habe auf dem Server einen Ordner der sich "Scan" nennt, nun da landen Dateien direkt die gescannt ...

Neue Wissensbeiträge
Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 1 TagHumor (lol)4 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 1 TagExchange Server6 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 2 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 3 TagenVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Heiß diskutierte Inhalte
Netzwerke
Netzwerk-Architektur mit VLANs
Frage von niLuxxNetzwerke15 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Ich werde in Kürze das Netzwerk unserer (sehr) kleinen Firma ...

Webbrowser
Neuer Tab Firefox
gelöst Frage von BleifussWebbrowser12 Kommentare

Hallo, via Strg + T öffnet man ja einen neuen Tab. Gibt es die Möglichkeit, dass der Tab sich ...

Windows Server
WSUS nach Upgrade - kein Start mehr
gelöst Frage von Ghost108Windows Server9 Kommentare

Hallo zusammen, habe einen Windows Server 2012 welcher als WSUS dienst. Jetzt wurde ein Upgrade auf Server 2016 durchgeführt ...

Microsoft
Ist es möglich ein reines Volume C Datenbackup in eine Hyper-V VM zu konvertieren?
Frage von Frank84Microsoft8 Kommentare

Hallo zusammen, ich habe hier ein Backup vorliegen, das ausschließlich das komplette C:\ Volume eines physischen Server 2012 enthält. ...