wie alle Dateiversionen fortlaufend sichern

Schwipp

Cadet 1st Year
Registriert
Juli 2011
Beiträge
10
mal 'ne Frage:

Wenn ich ein differentielles Bakup einer Datei mittels Robocopy mache, wird dann die Differenz in einer extra Datei gespeichert (so es Acronis mit einem Bakup machen kann)?

Das hätte doch den Vorteil, dass bei fehlerhafter Änderung der Datei die n-1. Version zur noch Verfügung steht.

Wie speichert man von einer Datei die fortlaufenden Versionen (automatisch)?

Ab und zu zerschieße ich mir nämlich eine Exceldatei mit Kundennr. darin, die fortlaufend um neue Kunden ergänzt wird.

Früher, mit der DEC PDP11 ging das immer so, da wurde nach jeder Dateiänderung ein zusätzliches Bakup angelegt. bakup1,...usw.
Aber das war vor der Erfindung des PCs.

Gruß Schwipp
 
Vielleicht hilft dir hier ein Versionsverwaltungssystem ala SVN, git oder Mercurial weiter

hab jedoch kein Plan ob man das auch "automatisiert" betreiben kann
 
Es würde mir schon reichen,
wenn beim Hochfahren des PCs automatisch die aktuelle Version auf externer Festplatte gesichert wird, denn wenn ich die danach aktuelle Version zerschieße, habe ich noch die Sicherung zur Zeits des Hochfahrens.
Gruß Schwipp
 
Wie wärs mit ner einfachen Batch-Datei im Autostart.
Mit der kopierst du das Excel-Sheet einfach auf die Externe.
Beim Kopieren könnte die Datei dann in Name+Timestamp umbenannt werden
 
Bastel Dir doch ein Batchdatei und lege das in den Autostart. Weiterhin kannst Du mit dem Windows Scheduler eine Aufgabe planen. Dann kannst Du meinetwegen immer beim Hochfahren und mehrmals am Tag sichern.
 
das schwante mir auch, nur habe ich keine Ahnung, wie ich das unter XP mache ;)
gibt es einen Link dazu irgendwohin?
 
Wie wäre es mit einer Batch die beim Start ausgeführt wird und Datei xyz nach externe HDD kopiert in ein Ordner mit Namen Datei-xyz-datu-uhrzeit (Ordner wird davor erstellt) ??
 
Zuletzt bearbeitet: (lol drei Dumme ein Gedanke *g*)
Hier ist ein Beispiel, wo ich die Backupdatei zuerst lösche und dann mit 7Zip eine neue Datei anlege. Kopiert wird das Verzeichnis "Eigene Dateien".

REM Alte Dateien loeschen
del "U:\backup C_EigeneDateien.7z" /F /S

REM Dateien komprimieren
cd "C:\Program Files\7-Zip>"
7z a -t7z -ssw -y -mx9 "U:\backup C_EigeneDateien.7z" "C:\Eigene Dateien"

Kopieren ohne Komprimierung würde so aussehen:

xcopy "C:\Eigene Dateien" "U:\backup C_EigeneDateien" /C /E /H /R /Y

Das soll nur zur Anregung dienen. Kopieren einzelner Dateien geht analog. Für dynamische Dateinamen mit Zeitstempel mußt Du eine Variable deklarieren, ihr den Zeitstempel zuweisen und an den Dateinamen anhängen. Dazu fehlt mir aber gerade die Zeit, Dir das vorzumachen.
 
Zuletzt bearbeitet:
so oder so ähnlich könnte die batch aussehen...
Code:
@ECHO OFF
cls
title Erstellen und Kopieren

REM Aktuelle Zeit holen und Doppelpunkte durch Punkte ersetzen
set CURRENTTIME=%TIME::=.%

REM Nur erste 8 Zeichen der Zeit verwenden: HH.MM.SS
set CURRENTTIME=%CURRENTTIME:~0,8%

REM Archivnamen zusammensetzen
set ARCHIVNAME=archiv-%DATE%-%CURRENTTIME%

REM Verzeichnis erstellen
mkdir d:\%ARCHIVNAME%

REM kopiert Datei nach Backup
copy c:\temp\test.xlsx d:\%ARCHIVNAME%

PAUSE
ps schau dir noch mal in der Konsolen CMD den Befehl copy an per copy /?
 
liebe Ratgeber,

hier werde ich geholfen :), ich hoffte es ja auch.

Unter DOS habe ich früher in der autoexec.bat rumgebastelt,
wie heisst denn nun die Datei in XP, die ich manipulieren muß?

Danke, Schwipp
 
Oje!

Oben hat Dir "Entilzha" ein sehr schönes Script geschrieben, welches ich selbst schon ausprobiert habe. Das funktioniert tadellos.

Damit das für Dich auch funktioniert, mußt Du in einem beliebigen Verzeichnis auf Deiner Festplatte eine neue Datei anlegen. Diese muß die Dateiendung "bat" oder "cmd" haben. Dann öffnest Du die Datei in einem Editor (z.B. Start/Zubehör/Editor) und kopierst den Text oben hinein. Den Text mußt Du dann auch noch einmal bearbeiten, damit die Laufwerksbuchstaben und die Dateinamen in den Zeilen 14 und 17 stimmen. Dann Abspeichern und mit einem Doppelklick auf die Datei ausprobieren.

Falls es klappen sollte:

1. Datei in den Autostartordner kopieren.
2. Auf Wunsch eine zeitgesteuerte Sicherung einrichten. Start/Zubehör/Systemprogramme/Aufgabenplanung/Einfache Aufgabe erstellen


Falls es nicht klappen sollte:

Da Windows standardmäßig die Dateiendungen ausblendet, solltest Du im Dateiexplorer das Menü "Extras/Ansicht" öffnen und dort den Haken bei "Erweiterungen bei bekannten Dateitypen ausblenden" wegnehmen.

Dann noch einmal Deine Datei anschauen. Eventuell hat die von Dir erstellte Datei noch eine zweite Dateiendung. Z.B. "Kopieren.bat.txt" umbenennen in "Kopieren.bat"
 
Vielen Dank schon mal, aber es hat aus einem anderen Grund nicht geklappt:

"Zugriff verweigert. Das System kann die angegebene Datei nicht finden."
Die Pfadangabe ist aber korrekt.

Müssen Leerzeichen ersetzt werden?
Muss der Pfad in Anführungszeichen?
Und die % müssen auch stehen bleiben vor und hinter ARCHIVNAME?
Muss ich als Administrator angemeldet sein?
 
Zuletzt bearbeitet:
Leerzeichen müssen nicht ersetzt werden, aber die Pfade, welche Leerzeichen enthalten müssen via " geklammert werden. Also:
Statt:
C:\Programme\Pfad 123
"C:\Programme\Pfad 123"
 
OK nun kopiert er die Datei, aber er erstellt nicht den gewünschten Ordner d:\%ARCHIVNAME%, sondern kopiert ins Stammverzeichnis d:\ und das nur, wenn ich als Administrator angemeldet bin.
Ansonsten heißt es "Zugriff verweigert".
 
Hast Du die Batch-Datei als Administrator ausgeführt (rechter Mausklick auf die Datei + Ausführen als ...)?
 
Nein, das gibt es hier gar nicht im Rechtsklickmenü (Win XP)
 
Hast Du es hinbekommen? Gib uns mal ein paar Informationen!
 
Ruheliebhaber schrieb:
Den Text mußt Du dann auch noch einmal bearbeiten, damit die Laufwerksbuchstaben und die Dateinamen in den Zeilen 14 und 17 stimmen.


Das hatte ich missverstanden und ARCHIVNAME im Code durch einen eigenen Ordnernamen ersetzt.

Jetzt funktioniert es so, wie ich es haben will. Lieben Dank!

Code:
@ECHO OFF
cls
title Erstellen und Kopieren

REM Aktuelle Zeit holen und Doppelpunkte durch Punkte ersetzen
set CURRENTTIME=%TIME::=.%

REM Nur erste 8 Zeichen der Zeit verwenden: HH.MM.SS
set CURRENTTIME=%CURRENTTIME:~0,8%

REM Archivnamen zusammensetzen
set ARCHIVNAME="BackUp - Datum %DATE% - Uhrzeit %CURRENTTIME%"

REM Verzeichnis erstellen
mkdir O:\BackUps\%ARCHIVNAME%

REM kopiert Datei nach Backup
copy "P:\Ordner  3\Datei  3.xls" O:\BackUps\%ARCHIVNAME%

PAUSE
 
Sieht doch ganz gut aus :)

Du könntest noch oben unterhalb von title per set das Verzeichnis und Datei angeben und unten nur noch mit der variable arbeiten... ist besser lesbar und beim Datei/Verzeichnis Änderung muss man keinen halben Code durchgehen... außerdem nach einem ~halben Jahr weiß man immer noch, was wo ist ;)
Code:
title Erstellen und Kopieren

set DATEI="Datei  3.xls"
set VERZEICHNIS="Ordner  3"
...
ist aber nur Spielerei :cool_alt:
 
Zurück
Oben