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ß
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ß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 93864
Url: https://administrator.de/contentid/93864
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
8 Kommentare
Neuester Kommentar
@Jochem
Korrektur: "xcopy /d" genügt, um nur neuere Dateien zu kopieren (siehe "xcopy /?").
Grüße
bastla
Korrektur: "xcopy /d" genügt, um nur neuere Dateien zu kopieren (siehe "xcopy /?").
Grüße
bastla
@bastla,
würdest Du nach erneutem Lesen der Hilfe zu xcopy und Betrachtung des Scripst oben evtl. die Aussage nochmal überdenken?
Gruß J chem
PS: Ich hatte den Einwand erwartet
würdest Du nach erneutem Lesen der Hilfe zu xcopy und Betrachtung des Scripst oben evtl. die Aussage nochmal überdenken?
Gruß J chem
PS: Ich hatte den Einwand erwartet
@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? ).
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
Stimmt - hinsichtlich der konkreten Anwendung in Exzels Batch genügt "/d" nicht
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
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:
In allen genannten Versionen bleiben die Sicherungen von im Arbeitsbereich (Laufwerk D: ) gelöschten Dateien erhalten, es erfolgt also keine Synchronisation.
Grüße
bastla
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