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

Script zum löschen von Ordnern im Format jjjjttmmstdstdminmin, die älter als 14 Tage sind

Frage Entwicklung Batch & Shell

Mitglied: 52106

52106 (Level 1)

26.01.2011, aktualisiert 18.10.2012, 3725 Aufrufe, 9 Kommentare

Guten Tag,

ich benötige folgendes Script: Script zum löschen von Ordnern im Format jjjjttmmstdstdminmin, die älter als 14 Tage sind. Kann mir dazu jemand eine Vorlage schreiben? Danke
Mitglied: bastla
26.01.2011 um 13:50 Uhr
Hallo SBong1!

Das Namensformat enthält tatsächlich den Tag vor dem Monat?

Grüße
bastla
Bitte warten ..
Mitglied: 60730
26.01.2011, aktualisiert 18.10.2012
Servus,

warum sollen wir dir eine Vorlage schreiben?
Pass dir doch eine von vielen an
@bastla: Ich bewundere deine Geduld - oder ist dein Lieblingsfilm der mit dem Murmeltier tanzt? *duck*

Gruß
Bitte warten ..
Mitglied: bastla
26.01.2011, aktualisiert 18.10.2012
@T-Mo
Soferne die Antwort auf meine obige Frage "ja" ist und der Name als Kriterium dienen soll, wird's etwas knifflig (und das war der für mich interessante Teil ) ...

... ansonsten hast du allerdings recht mit Deinem Vorschlag (dem ich noch, für den Fall dass doch nicht anhand des Dateinamens gelöscht werden soll, einen Tipp sowie den ergänzenden Hinweis auf "WasFile 2.2" - gleichfalls auf der verlinkten Seite zu finden - hinzufüge).

Grüße
bastla
Bitte warten ..
Mitglied: 52106
26.01.2011 um 14:59 Uhr
Also, ich schildere euch mein Problem mal Detail. Ich habe zwei Buffalo NAS GEräte im Einsatz. NAS1 macht um 20.00 auf NAS2 ein Backup über die integrierte Backup funktion der Linux Distri, welche auf den NAS-Station installiert ist. Wenn ich mir nun die BAckup Freigabe als Netzlaufwerk in meinem Windows PC mappe, dann ist der TimeStamp der autom. angelegten Backup Ordner (Format: jjjjttmmstdstdminmin) nicht aktuell sondern er steht bei jedem Ordner "geändert am 11.08.2009". Buffalo Support kann mir auch keinen Lösung nenne, da es meiner Meinung nach an der Inkompatibälität Linux-Windows liegt.
Ich habe es zuvor schon mit delage32 etc. probier, was aber aufgrund des falschen Timestamp nicht funktioniert.

Nun brauche ich ein Script/.bat Datei um eine Vernünftige Lösung und ein autom. Löschen durchführen zu können.
Ich frage auch nur, da ich der Anwendungsentwicklung nicht so mächtig bin und ich mir selber mit zusammen gebastelten Lösungen nicht mehr helfen kann. Brauche dies aber dringend für 3 Standorte.
Vielen dank im Voraus.
Bitte warten ..
Mitglied: 60730
26.01.2011 um 15:19 Uhr
Zitat von 52106:
Also, ich schildere euch mein Problem mal Detail.iert?

  • wenn du jeden Tag einen neuen Ordner anlegst und du willst nur die Ordner (Bäckubz) der letzten 14 Tage behalten, dann wäre es doch logisch, alle Ordner - bis auf die 14 letzten in den Orkus zu kicken.
(Wobei sich da schon meine Nackenhaare sträuben, Bäckubz auf Büffaloh und dann alles älter als 14 Tage in den Orkus jagen - das ist ja Beihilfe)

Brauche dies aber dringend für 3 Standorte.

Nee sorry - aber das trinkende Reizwort in Verbindung mit so einer (Bastla möge mir verzeihen) Banalfrage "skip=14" - da tick ich aus .-(

Warum denken so viele eigentlich - wenn schon nicht richtig, dann per Batch und am besten schnell von anderen bauen lassen, weil man brauchst ja dringend für 3 Standorte oder 1000 Rechner...
Mit Batch kan man selber so schöne Sachen machen, aber diese Würgarounds da mach ich nicht mit
Bitte warten ..
Mitglied: bastla
26.01.2011 um 16:01 Uhr
Hallo SBong1!

Das folgende VBScript simuliert den Löschvorgang nur - zumindest, solange der Löschbefehl in Zeile 13 durch das davor gestellte Kommentarzeichen ' deaktiviert ist:
01.
Basis = "D:\Backup" 
02.
Alter = 14 
03.
 
04.
Behalten = "#" 
05.
For i = Date To Date - Alter Step -1 
06.
    Behalten = Behalten & Year(i) & Right("0" & Day(i), 2) & Right("0" & Month(i), 2) & "#" 
07.
Next 
08.
Entfernen = "Gelöscht würden:" & vbCrLf 
09.
Set fso = CreateObject("Scripting.FileSystemObject") 
10.
For Each Folder In fso.GetFolder(Basis).SubFolders 
11.
    If Instr(Behalten, "#" & Left(Folder.Name, 8) & "#") = 0 Then 
12.
        Entfernen = Entfernen & vbCrLf & Folder.Path 
13.
        'Folder.Delete 
14.
    End If 
15.
Next 
16.
WScript.Echo Entfernen
Die Zeilen 8, 12 und 16 sind im "Ernstfall" nicht erforderlich.

Kurz zum Ablauf: Da eine gewöhnliche Sortierung (wegen der umgekehrten Reihenfolge von Tag und Monat) nicht zielführend ist, wird in den Zeilen 5 bis 7 eine "Whitelist" (lässt sich mit einem zusätzlichen
WScript.Echo Behalten
nach Zeile 7 auch anzeigen) für die nicht zu löschenden Datumswerte (in der Schreibweise "jjjjttmm", wobei als Begrenzung jeweils ein "#" vor und nach dem Datum steht) erzeugt - jeder Ordner, dessen erste 8 Zeichen des Namens nicht einem Listeneintrag entsprechen, wird gelöscht (siehe Zeile 11).

Grüße
bastla

P.S.: @T-Mo
Ich verzeihe umstandslos , allerdings: Ein "skip=14" setzt eine passende Sortierung voraus ...
Bitte warten ..
Mitglied: 52106
26.01.2011 um 16:04 Uhr
Sehr gut TimoBeil,

du scheinst meine Frage ja kompl. verstanden zu haben. Ich werde es mal in einem anderen Forum probieren.
Nur zur Info: Der Timestamp des NTFS Dateisystems wird nicht aktuell angezeigt, so dass ich mir leider mit einem Script, was alles älter als oder wie du es schreibst:
"wenn du jeden Tag einen neuen Ordner anlegst und du willst nur die Ordner (Bäckubz) der letzten 14 Tage behalten, dann wäre es doch logisch, alle Ordner - bis auf die 14 letzten in den Orkus zu kicken." nicht helfen kann.

Zudem weis ich nicht was an einem Backup von NAS zu NAS, die auch noch in unterschiedlichen Brandabschnitten stehen, jeweils mit einem RAID1 konfiguriert sind und eine versionierte Sicherung anlegen, falsch ist, aber du scheinst es ja zu wissen.
Respekt!!!
Bitte warten ..
Mitglied: 52106
26.01.2011 um 16:42 Uhr
Danke an \"bastla\" du hattest mit dem Format recht. Monat muss vor Tag. Habe alles angepasst und getestet. hat super funktioniert. Danke schön.
Bitte warten ..
Mitglied: 60730
26.01.2011 um 17:42 Uhr
Moin,
Zitat von 52106:
Sehr gut TimoBeil,

du scheinst meine Frage ja kompl. verstanden zu haben. Ich werde es mal in einem anderen Forum probieren.
Zum ersteren Ja habe ich - soweit man eine Frage, die in eine Zeile gepresst wurde - als Aussenstehender verstehen kann.
Zum zweiten: Solche "Erpressungsversuche" mag ich ja noch weniger, als das Wort Dringend.

Nur zur Info: Der Timestamp des NTFS Dateisystems wird nicht aktuell angezeigt, so dass ich mir leider mit einem Script, was
alles älter als oder wie du es schreibst:
Und da sehe ich den Unterschied zwischen diesem Forum und jenen Foren, wo man Haischecklogs postet.

Nix gegen Bastla und seine Lösung, aber das ist Works as Designed und ich behaupte, die Designvorgabe ist bescheiden.
Ich rsynce auch zwischen NASsen und da stimmt das Dateidatum - ob es an Buffalo oder an deinem Script oder an dem fehlenden NTP Server liegt - ich weiß es nicht und will es auch nicht wissen.

Denk mal drüber nach und wenn Bastlas Lösung deinen Ansprüchen genügt - bitte einen grünen Haken drankleben und mal ne Nacht über das Design schlafen.

Gruß
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
14 Tage alte Dateien automatisch löschen - Shell (1)

Frage von traller zum Thema Batch & Shell ...

Batch & Shell
gelöst Poweshell Script soll String ersetzen und die leere Zeile löschen (4)

Frage von Mars123 zum Thema Batch & Shell ...

Microsoft
Windows 10 logon script: alle Apps löschen (3)

Frage von thomasreischer zum Thema Microsoft ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
RODC über VPN - Verbindung weg (10)

Frage von stefan2k1 zum Thema Windows Server ...