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, 34497 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
LAN, WAN, Wireless
Wlan, 30-40 Nutzer
gelöst Frage von nirmelLAN, WAN, Wireless17 Kommentare

Hallo liebe Community, folgende Situation: kleines Büro (ca. 150qm, schlauchförmig angelegt, mehrere Unterbüros, dünnwandig getrennt) Standgeräte sind per Lan ...

Windows 7
Strg-Alt-Entf bei Anmeldung?
gelöst Frage von DirmhirnWindows 712 Kommentare

Hi, soweit ich das gehört habe soll die Kombination Strg-Alt-Ctrl bei der Windows Domain-Anmeldung gegen "überlagende" Malware helfen. Habt ...

Windows 7
Strg + Alt + Entf komplett blockieren
gelöst Frage von KaladialWindows 710 Kommentare

Hallo, ich hab eine eigentlich relativ simple Frage, auf die Mr.Google aber leider keine zufriedenstellende Antwort hatte. Folgendes Problem: ...

Peripheriegeräte
ASCOM Office 30 Telefonkabel
gelöst Frage von SalzmandelPeripheriegeräte9 Kommentare

Kennt jemand die Anschlußbelegung vom ISDN-Telefon ASCOM Office 30. Das Anschlußkabel fehlt und es ist ein 4p4c auf 8p4c-Kabel. ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 15 StundenHumor (lol)2 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 1 TagErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 4 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 5 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
SSD zeigt falsche Werte
Frage von karl2014Festplatten, SSD, Raid25 Kommentare

Ich habe ein Problem mit der SSD in meinem Laptop mit Windows 10. Es ist eine 1Tb Platte die ...

Server-Hardware
WS 2016 Essentials Hardware
Frage von ChefknechtServer-Hardware23 Kommentare

Moin welche Hardware würdet ihr empfehlen? Dell Poweredge HP Proliant Fujitsu Ich bin total konfus was nun nötig ist, ...

Windows Server
Welche Option fürs Windows Server Installations besser
Frage von backitWindows Server22 Kommentare

Hi Zusammen, ich werde unserer AD (SBS 2011) und Exchange 2010 Servern auf neuen physikalischen Server umziehen. ich habe ...

Ubuntu
Installation freerdp 2.0.0-rc4
Frage von kristovUbuntu20 Kommentare

Hallo, möchte freerdp 2.0.0-rc4 auf linux mint 18.3 installieren, habe aber keine Ahnung, wie das funktioniert. freerdp 1.1 ist ...