exzel
Goto Top

Nur neue Dateien in Ordner hinzufügen

Hallo zusammen,

mit diesem Sicherungsscript werden Dateien in einem Ordner gesichert, der im Format JJJJ-MM-TT (z.B. 2008-07-18) erstellt wird. Die Sache ist nur die, dass jeden Tag der komplette Datensatz gesichert, was sehr viel Speicher kostet. Genügt es /d bei Xcopy anzufügen, damit nur die Dateien, die neu hinzukommen gesichert werden?

Gelöschte Dateien sollen in der Sicherung aber erhalten bleiben.


@echo off
set xlog=c:\ergebnis.txt
set "date=%date:~-4%-%date:~-7,2%-%date:~-10,2%"
@echo ---------------- Beginn copy %date% %time% -------------- > %xlog%
xcopy d:\*.* z:\%date%\ /e /h /V >> %xlog%
@echo ---------------- Ende copy %date% %time% -------------- >> %xlog%


Im Laufwerk d: befinden sich die zu sicherenden Ordner, die wiederum Unterordner enthalten.


Gruß

Content-Key: 93864

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

Printed on: April 20, 2024 at 02:04 o'clock

Member: Jochem
Jochem Aug 07, 2008 at 09:34:39 (UTC)
Goto Top
Moin,
nur /d alleine reicht nicht, Du mußt dann auch das entsprechende Datum vorgeben.

Gruß J face-smile chem
Member: harald21
harald21 Aug 07, 2008 at 09:34:49 (UTC)
Goto Top
Hallo,

teste doch mal robocopy.

mfg
Harald
Member: bastla
bastla Aug 07, 2008 at 09:44:53 (UTC)
Goto Top
@Jochem

Korrektur: "xcopy /d" genügt, um nur neuere Dateien zu kopieren (siehe "xcopy /?").

Grüße
bastla
Member: Jochem
Jochem Aug 07, 2008 at 09:56:09 (UTC)
Goto Top
@bastla,
würdest Du nach erneutem Lesen der Hilfe zu xcopy und Betrachtung des Scripst oben evtl. die Aussage nochmal überdenken?

Gruß J face-smile chem

PS: Ich hatte den Einwand erwartet face-wink
Member: bastla
bastla Aug 07, 2008 at 10:14:05 (UTC)
Goto Top
@Jochem

Stimmt - hinsichtlich der konkreten Anwendung in Exzels Batch genügt "/d" nicht (allerdings wird die/der in der "xcopy"-Hilfe gar nicht erwähnt, also wozu hätte ich diese nochmals lesen sollen? face-wink).

BTW: Ich war an "Gelöschte Dateien sollen in der Sicherung aber erhalten bleiben." hängen geblieben und hatte daher leider nicht darauf geachtet, dass in unterschiedliche Zielordner gesichert werden soll.

Grüße
bastla
Member: Exzel
Exzel Aug 07, 2008 at 15:59:01 (UTC)
Goto Top
Hallo und danke für die Antworten,

genügt nun /d nicht weil ich in unterschiedliche Ordner sichere oder hat es einen anderen Grund.

Die Sicherung würde sich auch umstellen lassen, sodass ich künftig alles in einem Ordner (mit den jeweiligen Unterordnern) sichern würde, wenn /d dann genügt.


Gruß
Member: bastla
bastla Aug 07, 2008 at 16:58:55 (UTC)
Goto Top
Hallo Exzel!

Die Option "/d" ohne Angabe eines Datums vergleicht vor dem Kopieren das Dateidatum (Änderungsdatum) der zu kopierenden Datei mit einer gleichnamigen Datei im Zielordner, und kopiert nur, wenn die Datei im Zielordner älter ist - oder aber es diese Datei noch gar nicht gibt.

Wenn Du für jede Sicherung einen neuen (Datums-) Ordner erstellst, wird natürlich immer alles kopiert, da es ja keine Vergleichsmöglichkeit gibt (der Zielordner ist leer).
Es kommt jetzt auf Deine Zielsetzung an, welche der folgenden Möglichkeiten Du wählst:

  • Wenn Du verschiedene Versionen einer Datei aufbewahren willst, ist die Verwendung der mit Datum bezeichneten Ordner sinnvoll (so hättst Du etwa von einer am Mo, Di und Do bearbeiteten Excel-Datei jeweils eine Sicherung, was natürlich einen höheren Platzbedarf für Sicherungsdateien nach sich zieht). Um diese Art der Sicherung mit "xcopy" durchzuführen, böte sich der Schalter "/m" an - damit werden alle seit der letzten Sicherung veränderten Dateien kopiert und diese Tatsache vermerkt (indem für die Datei das "Archiv-Attribut" gelöscht wird), sodass die Datei erst wieder gesichert wird, wenn sie zwischenzeitlich verändert (oder zumindest neu gespeichert) wurde.

  • Eine datumsabhängige Sicherung in unterschiedliche Ordner würde, worauf Jochem bereits hingewiesen hat, voraussetzen, dass Du das Datum, ab welchem Dateien erfasst werden sollen, angibst - Du müsstest also das letzte Sicherungsdatum zB aus dem neuesten Sicherungsordner auslesen, einen Tag addieren (in Batch eher mühsam) und mit dem Schalter "/d" und Angabe des neuen Datums kopieren.

  • Genügt es Dir, nur die (eine) jeweils aktuelle Version einer Datei gesichert zu haben, kannst Du als Ziel immer den selben Ordner angeben und sowohl die Variante "/d" ohne Datumsangabe (damit, wie oben beschrieben, nur zusätzliche und, im Vergleich zu den bereits gesicherten, neuere Dateien kopiert werden) als auch "/m" (alle seit der letzten Sicherung veränderten - umfasst natürlich auch neu hinzugekommene Dateien) verwenden.

In allen genannten Versionen bleiben die Sicherungen von im Arbeitsbereich (Laufwerk D: ) gelöschten Dateien erhalten, es erfolgt also keine Synchronisation.

Grüße
bastla
Member: Exzel
Exzel Aug 08, 2008 at 14:52:12 (UTC)
Goto Top
Hallo und danke für die Antworten,

mir würde ein großer Ordner genügen, in dem alle Dateien aufbewahrt werden. Es handelt sich größtenteils um Dokumente, die im PDF-Format aufbewahrt werden, also sich eh nicht mehr ändern. Die anderen sind Word-Dateien, die in der Regel aber auch nicht mehr geändert werden.


Dann werde ich das Script wie folgt umschreiben.

@echo off
set xlog=c:\ergebnis.txt
@echo ---------------- Beginn copy %time% -------------- > %xlog%
xcopy d:\*.* z:\Sicherung\ /m /e /h /V >> %xlog%
@echo ---------------- Ende copy %time% -------------- >> %xlog%


Nochmals vielen Dank!

Gruß