rbpn
Goto Top

Sicherung mittels Batch-Datei durchführen

Löschen vorhandener alter Sicherungsdateien

Ich möchte ein Verzeichnis eines Fileservers mittels XCOPY-Befehl täglich auf eine externe Festplatte sichern.

Dies habe ich auf einem Client der immer läuft über "Geplante Tasks" unter Windows XP eingestellt.

copy.cmd wird täglich um 19.00 Uhr ausgeführt.

Befehl der copy.cmd ==> C:\daten\copy1.cmd >C:\daten\%date%.log

Befehl der copy1.cmd ==> xcopy X:\daten\datenpfad\* d:\daten\%date%\* /s/e /y

Der Kopiervorgang funktioniert. Es wird täglich ein neuer Ordner angelegt mit dem aktuellen Tagesdatum


Jetzt meine Frage: Wie kann ich vor dem täglichen kopieren alle Ordner auf der externen Festplatte löschen, deren Name (Datum) älter als eine Woche ist?

Herzlichen Dank bereits im Voraus.

Content-Key: 57879

Url: https://administrator.de/contentid/57879

Printed on: April 23, 2024 at 08:04 o'clock

Mitglied: 36539
36539 Apr 30, 2007 at 10:22:53 (UTC)
Goto Top
etwas ähnliches wurde hier schon mehrfach gefragt. Hast Du dich schon mal umgeschaut?

z.Bsp.

oder
Löschen anhand des Datums

und nicht zuletzt im Tutorial von "Biber"
Member: Ravers
Ravers Apr 30, 2007 at 11:35:16 (UTC)
Goto Top
Das Prog xdel ist mein Favorit ;)
Member: rbpn
rbpn Apr 30, 2007 at 11:36:27 (UTC)
Goto Top
Danke für die schnelle Antwort.

Ich habe schon gesucht, aber mir ist das ganze gemessen an meinem derzeitigen Wissensstand "etwas zu hoch"

Gibt es nicht irgendeine ganz einfache Möglichkeit z.B. mit dem Befehl RMDIR die Verzeichnisse zu löschen? Die Abfrage nach dem Datum (alles was älter ist als 5 Tage) bezieht sich nicht auf das Erstellungs- oder Änderungsdatum sondern auf den Verzeichnisnamen (z.B. 30.04.2007)
Muß da dann nicht der Verzeichnisname erst in Datumsformat umgesetzt werden, damit man diesen auswerten kann?
Member: MoeSzyslak
MoeSzyslak Apr 30, 2007 at 13:08:45 (UTC)
Goto Top
einfach wäre es so:
- für jeden Wochentag einen Ordner anlegen
- den Wochentag beim aufruf des jobs mit übergeben und im Script als variable verwenden
dann kannst Du den entsprechenden Wocherntagsordner erst leeren und anschliessend sichern
oder Du leerst ihn nicht und sicherst kummulativ ....oder oder oder...
Member: Biber
Biber Apr 30, 2007 at 13:39:08 (UTC)
Goto Top
Moin rbpn,

auch ich bin mir relativ sicher, dass hier in diesem Forum mindestens ein halbes Dutzend von der Strategie her vollkommen verschiedene funktionierende Lösungswege gepostet oder eben auch im Dialog miteinander entwickelt oder verfeinert worden sind.

Zwei oder drei Sachen an Deiner Frage verstehe ich daher nicht ganz (oder bin nicht recht gewillt, das unkommentiert zu lassen):
  • Du hast Dir doch selbst diese "Ich-sichere-Täglich-einen-neuen-%date%-Ordner"-Mimik ausgedacht. Wieso war das Löschen der "älteren" Ordner nicht von Anfang an mit vorgesehen?
  • Meinst Du, wenn es "irgendeine ganz einfache Möglichkeit z.B. mit dem Befehl RMDIR" gäbe, dann würde es so viele Skripte, Utilities und Forumsfragen dazu geben?

[Anmerkung: Ich habe keine der Fragen mit "WTF" eingeleitet, wie es mein erster Impuls war...]
Und den Einwand...
bezieht sich nicht auf das Erstellungs- oder Änderungsdatum sondern auf den Verzeichnisnamen (z.B. 30.04.2007)
Muß da dann nicht der Verzeichnisname erst in Datumsformat umgesetzt werden, damit man diesen auswerten kann?
...das verstehe ich nicht.
Nach Deinen Beispielen oben im Eröffnungsthread sind es doch Nutella-Ordner. Ist doch drin, was auch draufsteht.
Das heißt, ein Ordner "30.04.2007" ist auch am 30.04.2007 angelegt worden.
Von daher kannst Du schon über das Erstellungsdatum gehen.

Wenn Du NICHT über ein (zu berechnendes) Datum gehst, empfehle ich Dir eine Strategie wie von MoeSzylyk gepostet.
Wenn Du über einen Datumsvergleich (Erstellungsdatum der Ordner) gehst, aber nur einen "einfachen" Befehl dafür haben willst, empfehle ich Zusatzutilitys
  • an erster Stelle immer DelAge32 von Horst Schaeffer (siehe in Links unter Batch)
  • oder für ausgefallene Geschmäcker die ForFiles.exe vom sympathatischen Weltmarktführer (in irgendeinem ResKit)
[ Syntax: forfiles -pc:\daten\??.??.???? -d-5 "cmd /c if @isdir==TRUE @echo rd /s /q @File"]
  • oder wie oben gepostet ähnliche Utilitys mit Namen wie XDel.exe, XDelete.exe, XErase....

Nach wie vor am Sinnvollsten ist meiner Meinung nach aber die Auseinandersetzung mit den bereits vorhandenen Skript-Lösungen. Sind schöne Ansätze für häufige Btach-Klippen dabei.

Gruss
Biber