Bonn, im Oktober 2007
Stichwörter: Backup, Sicherung, Datensicherung, Speichern, Kopieren, Kopie von Dateien

Die kleine Datensicherung –
einfacher, als Sie denken

Natürlich gibt es zahlreiche Programme, die einem so ziemlich alles von der Platte irgendwohin sichern, wo viel Platz ist. Mir schwebte ein Progrämmchen vor, das nur einzelne Ordner sichert – die Texte, die Fotos, Musik vielleicht oder die Buchhaltung. Die Sicherung sollte möglichst gleich nach dem Schließen einer Datei erfolgen. Was mir gelungen ist, ist eine gezielte Sicherung einzelner Verzeichnisse (Folder) samt Unterverzeichnissen, allerdings nur einmal am Tag.

Hier, wie’s geht. Ein wenig alte Dos-Kenntnisse lassen einen das besser verstehen, ohne geht es auch. Diese Anleitung ist für Windows. Wem das alles zu kompiziert ist, findet unten als PS ein fertiges Programm. Ich versteh’ halt gerade Wichtiges gern selbst.

1. Schritt von zweien – die Batchdatei

Als erstes macht man sich eine Stapelverarbeitungsdatei (Batchdatei), die die gewünschten Sicherungsbefehle enthält. Eine Batchdatei ist eine vordefinierte, lesbare Ablauffolge von Befehlen an den PC. Ich nannte diese Batchdatei »savefiles.bat« – Groß- und Kleinschreibung ist bei Dos übrigens egal. Und gespeichert habe ich sie direkt unter C:\ als C:\savefiles.bat.
   Zum erstmaligen Erzeugen dieser Datei geht man im Windows-Explorer auf C:\, führt die Maus links in eine leere Fläche, und klickt mit der rechten Maustaste, bis erscheint:

Bonn, October 2007
Tags: backup, saving files, data security, data backup, copying, xcopy

My Humble Data Backup—
Simpler Than You Think

There are plenty of programs for backup. They store about everything to somewhere with a lot of free space. I wanted a small program, just to backup my main folders, say my texts, the bookkeeping, the pictures. The backup ideally should be instantaneous, when a file is closed. Well—I managed the simple backup, albeit only once a day or by user interanction.

See here how it’s done. If you remember Dos, the better, then you will understand easier what’s being done. But you’ll be able to use this suggestion even with pure Windows knowledge.
 
If you insist on a ready-made program, see the PS below. I haven’t tried it. I like making my own mistakes.

1. The first of two steps—the batch file

First of all you have to prepare a batch file. Basically that’s a text file with .bat, instead of .txt at the end. You create it with the Windows Explorer or how you like. I called my bachup batch file “savefiles.bat”. Note that small or capital letters don’t matter in Dos. I saved it (“her” in German ...) straight at C:\ as C:\savefiles.bat.
   To create the file in the first place I used my Windows Explorer, guided it to C\: und moved the mouse to an empty place at the right. Now you click the
right mouse button, and you’ll see – naturally in your language:

Man wählt »Neu« aus und »Textdokument«. Diese neue Dokument nennt man savefiles.bat (oder beliebig anders, ich bleibe aber dabei). Wichtig ist das .bat, das im Gegensatz zu .txt dem PC sagt, dass es sich nicht bloß um einen passiven Text sondern um Anweisungen zum Abarbeiten durch ihn handelt.
   Klickt man im Windows-Explorer dann so eine Batch-Datei an – wiederum mit der rechten Maustaste! –, so erscheint gleich als zweites die Möglichkeit, die Datei zu »Bearbeiten«:

Please select “New” and “Text Document”. Call the new file “savefiles.bat” (or how you like, I stay with savefiles.bat). The important part is .bat in contrast to .txt at the end. It tells your PC that this isn’t just a passive text file, it’s a group of commands to be executed by the very PC.
   In klicking such a batch file—again with the
right mouse—you get to see, as second choice, to edit the file:

An die Arbeit. Geben Sie Zeile für Zeile ein, was gesichert werden soll, etwa dergleichen (Beispiel): Let us now enter the commands into the batch file, line by line, something like this:

   xcopy C:\FA\*.*          J:\SaveCplus\FA\*.*          /D /Y /S /R /H /Z
   xcopy D:\Ausschnitte\*.* J:\SaveDplus\Ausschnitte\*.* /D /Y /S /R /H /Z
   xcopy D:\Hof\*.*         J:\SaveDplus\Hof\*.*         /D /Y /S /R /H /Z
   xcopy D:\Buchhaltung\*.* J:\SaveDplus\Buchhaltung\*.* /D /Y /S /R /H /Z

Erklärung: »C:\FA\*.*« weist auf meinen Ordner mit den Texten hin, den ich sichern möchte. Das *.* heißt einfach: alle Dateien. Es folgt mindestens eine Leerstelle. »J:\SaveCplus\FA\*.*« ist der Sicherungsordner auf der Zielplatte J. Auf »D:\Ausschnitte\*.*« finden sich bei mir gesammelte Zeitungsausschnitte, die ich nach »J:\SaveDplus\Ausschnitte\*.*« sichere, und so weiter. Sie müssen nur ihre eigenen Dateinamen eingeben.
   Unterverzeichnisse werden mitberücksichtigt. Sie können also, wenn Sie wollen, »hoch oben« in der Verzeichnishierarchie ansetzen. Und Groß- und Kleinschreibung tun, wie gesagt, nichts zur Sache, nur die Leerstellen in der Befehlszeile. Probleme werden Sie also mit Verzeichnisnamen bekommen, die Leer­zeichen enthalten. Die müssen Sie mit geraden "Gänsefüßen" umhüllen, dann geht auch das und sähe etwa so aus:

Explanation: “C:\FA\*.*” is my folder with the texts, which I’d like to save. “*.*” simply says: look at all files. Then at least one blank space. “J:\SaveCplus\FA\*.*”, that’s the file to save to on my disc J.
   In another folder, “D:\Ausschnitte\*.*”, I have article copies. These I want to save to “J:\SaveDplus\Ausschnitte\*.*”, et cetera. Just insert your own file names.
   Subdirectories are processed as well. So you may, if you’d like to, start high up in the file hierarchy.
   Note also, that capitalization is irrelevant. You will have problems with blanks however. Names with embedded blanks must be enclosed in straight "parentheses", which then looks somewhat like this:

   xcopy C:\"Dokumente und Einstellungen"\"Fritz Jörn"\"Eigene Dateien" *.* usw.

Es empfiehlt sich, immer volle Pfade anzugeben, beginnend mit der Plattenbezeichnung, etwa »C:\...« oder »D:\...«, dann gibt’s kein Vertun.
   Wer über die xcopy-Befehlsparameter /D (Datum – nur ältere Dateien überschreiben), /Y (yes zu ungefragtem Überschreiben), /S (subdirectory, Unterverzeichnisse mit berücksichtigen) usw. mehr wissen will, findet das hier oder öffne die Dos-Box (Start, Ausführen, cmd) und sehe sich einmal »help xcopy« an.
   Nun speichert man und beendet den Editor, die Batchdatei ist einsatzfähig. Sie kann durch einfaches Anklicken (mit der normalen linken Maustaste) ausgeführt werden. Hernach sehen Sie sich an, ob es geklappt hat.

2. und letzter Schritt – der automatische Ablauf

Um eine Batchdatei (oder irgendein Programm) regelmäßig ablaufen zu lassen, verwenden Sie direkt Windows. In der Systemsteuerung (Start, Einstellungen, Systemsteuerung) finden Sie eine Rubrik »Geplante Tasks«. Dort gehen Sie auf »Geplanten Task hinzufügen«:

Let me suggest to always state full paths, starting with the disc character, e. g. “C:\...” or “D:\...”, to avoid ambiguities.
   To understand the xcopy command parameters like /D (date—overwrite older files only), /Y (yes to overwrites), /S (subdirectory, look at all of them too) etc., you look here or open the dos box (command interpreter: start, execute, cmd) and type “help xcopy”.
   Finally just save the batch file contents and close the editor. Your batch file is ready to be tested. You start it by clicking it with the normal
left mouse button. Afterwards you check, if the backup took place correctly.

2. Second and last step—the automatic execution

To have a batch file run regularly—or any other executable—you use Windows itself. Under System Control (Start, Settings, System Control) [please tell me, if I use the wrong names! I have no English Windows version.] you find a button “Planned Tasks”. Use it and start with “Add a New Task”:

Das Häkchen »Nur ausführen, wenn angemeldet« muss an sein, sonst wird ein »Kennwort« verlangt, und Sie bekommen statt der automatischen Sicherung als Status: »Der geplante Task wurde nicht ausgeführt, weil kein Benutzerkennwort eingegeben wurde.« Das »Ausführen als« wird vorgegeben. Im Reiter »Zeitplan« stellen Sie die Zeit an, zu der sie sichern wollen.

Please set the upper choice “Execute only when user active”, otherwise a password is demanded, and instead of your planned backup you’ll get as status: “The planned task was not executed, as no password was entered.” The name in “Execute as” is given. Under “Time plan” set the time you want the backup done.

Natürlich kann man durch Ausführen (manuelles Anklicken) von savefiles.bat jederzeit seine Daten sichern, etwa, wenn man eine externe Sicherungsplatte immer nur zeitweise angeschlossen hat oder bevor man den Rechner abschaltet. Am besten macht man sich dafür einen Icon auf die Desktop-Oberfläche. Das geht einfach so: Man klickt wieder einmal im Windows-Explorer mit der rechten Maustaste auf die Datei savefiles.bat und wählt »Verknüpfung erstellen«. Dann geht man, immer wieder mit einem rechten Mausklick, auf die Verknüpfung und nutzt »Ausschneiden«. Anschließend wechselt man zum Desktop und lässt sich den anzeigen. An einer genehmen Stelle fügt man, immer noch mit Rechtsklick, die Verknüpfung zur Sicherung ein. Sie lässt sich nach Belieben umbenennen. Und wem das Zahnrad als Symbol nicht passt, der kann der Verknüpfung über Eigenschaften, Verknüpfung, Anderes Symbol und dann zweimaliges Klicken ein anderes geben.
   Übrigens eignet sich das Verfahren dank dem Parameter /D sogar zum Sichern von mehreren PCs aus auf eine gemeinsame Sicherungsplatte. Es werden immer nur neuere Dateien über alte geschrieben, die Sicherung ist damit stets am neuesten Stand. (Allerdings werden trotz /D beim Kopieren von modernen NTFS-Platten auf FAT-Platten auch gleichalte Dateien kopiert, wenn ihre letzte Änderung zufällig an einer geradzahligen Sekunde erfolgte. Keine Angst: Neuere Dateien werden nicht überschrieben.)
   Aber Achtung: Wie bei jeder Sicherung kann man sich alte gute Inhalte durch neue mistige versauen. Man erlebt dann später böse Überraschungen. Es kann also nicht schaden, sich irgendwo (oder irgendwie, etwa auf gebrannten Scheiben) auch ältere Versionen aufzubewahren. Praktisch hilft, gelegentlich wichtige Dateien gesondert mit dem Datum hinter dem Namen als Archivkopie abzuspeichern, und dann mit dem Original weiterzuarbeiten. Und schließlich: Für Fehler und Schäden dieses Tipps übernehme ich keine Haftung. Denken Sie bitte selbst mit und entscheiden Sie selbst, was Sie tun.

3. Schmankerl

Wer am nächsten Tag in der Früh wissen will, wann die letzte automatische Sicherung gelaufen ist, sehe in der Systemsteuerung unter dem geplanten Task nach. Dort steht, wann er zuletzt gelaufen ist, und wann er wieder laufen wird wollen.
   Eine Logdatei bekommt man, wenn man den Befehl zum Start der Batchdatei um >logfile.txt verlängert. Diese wird allerdings immer wieder überschrieben. Für eine fortlaufende Logdatei setze man >>logfile.txt. Bei mir heißt die Logdatei savefiles.txt. Ist sie noch nicht vorhanden, so erstellt sie der Sicherungsprozess selbst. Im Windows-Taskmanager sieht das dann so aus:

You are welcome, of chourse, to manually start the batch file savefiles.bat at any time, say before you shut down the system or unplug your external backup disk.
   You might like to have an icon for that task on your desktop. That’s simple. In your windows explorer, when you see savefiles.bat, click on it once again with the
right mouse, and select “Create a link”. Then you grab—again with the right mouse—this new link, and you select “cut out”. Afterwards get your desktop on top, look for a convenient place, and click—right again—your new backup icon to be stored there.
   You are welcome to rename the link there, right mouse please. You can get yourself even another symbol than the working wheel. Go to Properties, Link, Other symbol, click twice, and select your choice.
   By the way: Thanks to xcopy parameter /D the process can be used from more than one PC! Only newer files will be written, no matter from where they come. You always save the latest copy.
   A strange curiosity, due to the saving files rounded down by two seconds in FAT: If you copy from a modern NTFS Disk to a FAT formatted disk and a file was
last changed on an even second, despite /D an equally old file is still being overwritten. No sweat: Newer files are never overwritten.)
   But take care: As with any backup you might overwrite good old stuff with new crap. Then you will be surprised later. It’s a good habit to save some permanent, unchangeable copies, say on burned disks, from time to time. Or just save copies of important files with the date appended to their names, as archive copies, and leave them untouched. Windows might zip them later, when they are getting old, but you are sure that no “operator intervention” (by yourself) will permanently destroy unrecoverable content.
   And finally: I will not be made responsible for this tip here. Please make up your own mind.
   Only do, what you understand.

3. Lastly

If you’d like to know when your automatic backup has last run, you can always look at the status of the “Planned task”. It will tell you when it has last executed and when it plans to run again.
   You get a log file by calling up the batch file with the parameter >logfile.txt, but it is overwritten with every run. So use >>logfile.txt, and you’ll get a continuous log file. It the file is not yet present, the process will produce it. So you can scratch it any time you like, after having looked at it.
   My logfile is called savefiles.txt, so my Windows task manager shows this:

Ich empfehle, die Ausführung »Minimiert« zu machen (»Eigenschaften« der Verknüpfung, Verknüpfung, Ausführen), dann steht Ihnen dabei kein schwarzes Feld herum.
   Möchten Sie in der Logdatei Datum und Uhrzeit einer Sicherung sehen, so ergänzen Sie die Batch-Befehle um:
Let me suggest to execute the automatic batch in “minimalized” mode. Then you won’t be bothered by a small black screen, while it’s running (Link, Properties, Execution, Minimalized or so).
   If you want to see date and time in your log file, add to the batch commands:

   DATE /T
   TIME /T
Oder, eleganter, lassen Sie in jeder Ausgabezeile Datum und Uhrzeit anzeigen, durch den Befehl als ersten in der Batchdatei (eine Erklärung der Prompt-Parameter finden Sie unten): Or, even more elegantly, add date and time to each line of output by specifying as first line of your batch file (you find an explanation of the prompt parameters below):

SET PROMPT=$D $T $P$G

Das Ergebnis sieht in der Log-Datei etwa so aus:

The result in the log file looks somewhat like this:

   C:\>set prompt=$D $T$H$H$H $P$G
   12.10.2007 0:00:02,45 C:\>date /T
   12.10.2007
   12.10.2007 0:00:02,45 C:\>time /T
   00:00
   
   12.10.2007 0:00:02,45 C:\>xcopy C:\FA\*.* J:\SaveCplus\FA\*.* /D /Y /S
   C:\FA\Klassenkasse1a.xls
   C:\FA\Klassenliste1a.doc
   C:\FA\PrintScreen Files\Configuration.xml
   C:\FA\Stammb\stammb.pdb
   C:\FA\Stammb\stammb.pdx
   C:\FA\Stammb\stammb.rcx
   6 Datei(en) kopiert
   
   12.10.2007 0:00:05,45 C:\>xcopy C:\Bilder\*.* J:\SaveCplus\Bilder\*.* /D /Y /s
   0 Datei(en) kopiert
   etc. etc. etc. ...

Bingo. Kommentare (und Danksagungen) an mich. Vor allem, wenn einer (außer Picasa) den Trick kennt, immer gleich ganz sofort nach Schließen einer Datei dranzugehen und zu sichern, nicht bloß einmal am Tag!

Bingo. Send me comments and regards. I am especially interested in a method to save a file right after it’s having been closed. Picasa apparently knows how to do that. Sorry, I don’t.


   Xcopy, erklärt von Microsoftexplained by Microsoft
    More on batch programming
    Zu meinen anderen Tipps To my other tips
   Zurück in die Heimat—back home

Erklärung einiger Prompt-Parameter (siehe auch):
$E Escape (Asc27)
$D Datum
$T Uhrzeit
$P Name des aktuellen Verzeichnisses
$G >
$L <
$B | (alt124)
$Q =
$E Escape (Strg, Asc27), geht nicht bei Ausgabe in Datei!
$V Dos-Version
$N Standardlaufwerk
$_ neue Zeile auf dem Bildschirm
$H Rückschritt, geht nicht bei Ausgabe in Datei!
[A eine Zeile nach oben zurück
[K das löschen, was zuvor in der Zeile stand
1 Intensivanzeige (7 invers, 0 standard)
44 Hintergrund blau (30—47)
40 schwarz
47 weiß (tückisch!)
   Mehr über »help prompt» in der Dos-Box. Einen permanenten Dos-Prompt für Windows erhält man mit set winpmt, s. auch hier.
Explanation of some prompt parameters:
$E Escape (Asc27)
$D date
$T time
$P name of the current directory
$G >
$L <
$B | (alt124)
$Q =
$E Escape (Strg, Asc27), not with file output!
$V Dos version
$N standard volume
$_ new line on screen
$H backspace, not with output to file!
[A up one line
[K delete what was in the line so far
1 intensive (7 inverted, 0 standard)
44 blue background (30—47)
40 black
47 white (possibly invisible!)
   For more type “help prompt” in the Dos box. For a permanent Dos prompt in Windows set winpmt.

PS:    Eine sehr schöne menügetriebene Xcopy-Variante gibt’s von Frank Geppert aus Potsdam, kostenlos!
          Hier sein Armaturenbrett:

Backup für Outlook-Ordner: Outlook 2003/2002 Add-in: Personal Folders Backup