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

Frage Entwicklung Batch & Shell

Mitglied: MrChaos

MrChaos (Level 1) - Jetzt verbinden

02.04.2008, aktualisiert 07.04.2008, 30920 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
Batch: Dateien die älter sind als sieben Tage in Freigabe löschen
gelöst Frage von SarekHLBatch & Shell4 Kommentare

Hallo Batch-Profis! Hat jemand von Euch einen Tipp, wie ich mit einer Batchdatei in einem UNC-Pfad à la \\server\freigabe\ordner ...

Batch & Shell
Suche nach Möglichkeit ein Datum aus dem Dateinamen auszulesen und Dateien älter 30 Tage zu löschen.
gelöst Frage von FEKC2014Batch & Shell3 Kommentare

Hallo, ich suche nach einer Möglichkeit Backups nach 30 Tagen mithilfe eines Datums aus dem Dateinamen zu löschen. Am ...

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 ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 3 StundenWindows 101 Kommentar

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 4 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner2 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Brainstorming, einfachste Option 1 getrenntes LAN (mit WAN zugang)
Frage von 132954LAN, WAN, Wireless13 Kommentare

Hi, folgendes: Wir bekommen eine Glasfaser Leitung, Und das sollte Optional so aussehen: Ein Modem/Router für das WAN, ein ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...