Tom: Windows 98 und xcopy32.exe

Hello,

nun war ich schon wieder solange nicht hier und dann habe ich auch gelich wieder eine Frage, die gar nicht viel mit Web & Co zu tun hat...

Allerdings mag ich meine ganzen Daten nicht verlieren und deshalb versuche ich eben, täglich eine Datensicherung zu machen.

Leider habe ich mit Windows (98) und xcopy32 so meine Probleme.

Es gibt jeweils zwei gleiche Festplatten und mittels xcopy sollte eigentlich eine differenzielle Sicherung von der Arbeitsplatte auf die jeweilige Sicherungsplatte vorgenommen werden.

xcopy setzt beim Sichern die Archiv-Attribute für die Verzeichnisse zurück. Leider setzt Windows beim Ändern von Dateien innerhalb dieser Verzeichniss das Archive-Attribut nicht wieder. Beim nächsten Sicherungslauf werden daher alle Dateien, die inzwischen hinzugefügt oder geändert werden, nicht mehr übertragen.

Was kann man da machen?

Krücke wäre ja, in allen Verzeichnissen (rekursiv) vorher das Archive-Flag zu setzen. Dann müssten die gänderten oder hinzugefügten Datein doch berücksichtigit werden. Es fällt mir allerdings nicht ein, wie ich das bei Windows 98 hinbekomme.

Wer kann mir helfen?

Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau

  1. Hallo Tom!

    Es gibt jeweils zwei gleiche Festplatten und mittels xcopy sollte eigentlich eine differenzielle Sicherung von der Arbeitsplatte auf die jeweilige Sicherungsplatte vorgenommen werden.

    xcopy setzt beim Sichern die Archiv-Attribute für die Verzeichnisse zurück. Leider setzt Windows beim Ändern von Dateien innerhalb dieser Verzeichniss das Archive-Attribut nicht wieder. Beim nächsten Sicherungslauf werden daher alle Dateien, die inzwischen hinzugefügt oder geändert werden, nicht mehr übertragen.

    Eventuell könnte Robocopy statt xcopy32 helfen.
    (Hab ich aber noch nie mit Win98 probiert)
    http://www.msu-hb.de/system/system/robocopy.htm
    Oder auch xxcopy: http://www.xxcopy.com/xxcopy30.htm

    Viele Grüße

    H-P Ortner

  2. Hallo,

    Es gibt jeweils zwei gleiche Festplatten und mittels xcopy sollte eigentlich eine differenzielle Sicherung von der Arbeitsplatte auf die jeweilige Sicherungsplatte vorgenommen werden.

    soweit kann ich folgen. ;-)

    xcopy setzt beim Sichern die Archiv-Attribute für die Verzeichnisse zurück. Leider setzt Windows beim Ändern von Dateien innerhalb dieser Verzeichniss das Archive-Attribut nicht wieder.

    Ja, stimmt. Wenn eine Datei _neu angelegt_ wird, erhält sie ein Archiv-Attribut, beim Ändern manchmal, aber nicht unbedingt.

    Was kann man da machen?

    Andere Switches von xcopy benutzen, denn man kann die Auswahl der Dateien ja auch vom Timestamp abhängig machen. Auszug aus der integrierten Hilfe von xcopy:
      /D:M-T-J  Kopiert nur die an oder nach dem Datum geänderten Dateien.
                Ist kein Datum angegeben, werden nur Dateien kopiert,
                die neuer als die bestehenden Zieldateien sind
    Und der Timestamp wird zuverlässig bei jeder Änderung einer Datei gesetzt.

    So long,
     Martin

    --
    Paradox ist, wenn jemand eingefleischter Vegetarier ist.
    1. Hello,

      Was kann man da machen?

      Andere Switches von xcopy benutzen, denn man kann die Auswahl der Dateien ja auch vom Timestamp abhängig machen. Auszug aus der integrierten Hilfe von xcopy:
        /D:M-T-J  Kopiert nur die an oder nach dem Datum geänderten Dateien.
                  Ist kein Datum angegeben, werden nur Dateien kopiert,
                  die neuer als die bestehenden Zieldateien sind
      Und der Timestamp wird zuverlässig bei jeder Änderung einer Datei gesetzt.

      Danke Martin,

      damit habe ich gerechnet...
      Dann müsste ich mir ein Schellscript schreiben oder ein kleines C- oder Pascal-Programm, dass mir eine Kontrolldatei und die Batch erzeugt, und eine Batch, die beides nacheinander aufruft.

      Klingt jetzt etwas umständlich, scheint mir aber im Moment die beste Möglichkeit zu sein.

      Schauen, welche von beiden Sicherungsplatten drinsteckt.
      Letzte wurde auf der Originalplatte vermerkt.
      Datum auslesen aus (der Root) der Sicherungsplatte
      Neues Datum erzeugen und Batch erhzeugen lassen
      Batch aufrufen
      Log schreiben und auf Original und Sicherung kopieren.

      Habe ich 'was vergessen?

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau

      1. Hi,

        Dann müsste ich mir ein Schellscript schreiben oder ein kleines C- oder Pascal-Programm, dass mir eine Kontrolldatei und die Batch erzeugt, und eine Batch, die beides nacheinander aufruft.

        so kompliziert?

        Klingt jetzt etwas umständlich, scheint mir aber im Moment die beste Möglichkeit zu sein.

        Schauen, welche von beiden Sicherungsplatten drinsteckt.
        Letzte wurde auf der Originalplatte vermerkt.
        Datum auslesen aus (der Root) der Sicherungsplatte
        Neues Datum erzeugen und Batch erhzeugen lassen
        Batch aufrufen
        Log schreiben und auf Original und Sicherung kopieren.

        Also sei Y: der laufwerksbuchstabe der Backup-Platte und %original% das zu sichernde Verzeichnis:

        +----------------------------------------------
           | copy Y:\volumeid.txt %original%
           | touch %original%\volumeid.txt
           | xcopy %original%\*.* Y:\ /e /c /h /r /k /d > %temp%\backup.log
           | copy %temp%\backup.log Y:\    | copy %temp%\backup.log %original%
           +----------------------------------------------

        Als Ergebnis hast du im Originalverzeichnis eine volumeid.txt, deren Inhalt idealerweise angibt, auf welche Platte das letzte backup gemacht wurde, und deren Timestamp angibt, wann das war. Eine Liste aller kopierten Dateien hast du außerdem in backup.log sowohl im Originalverzeichnis, als auch auf der Kopie.

        Habe ich 'was vergessen?

        Keine Ahnung ... ;-)

        So long,
         Martin

        --
        Ich liebe Politiker auf Wahlplakaten.
        Sie sind tragbar, geräuschlos, und leicht wieder zu entfernen.
          (Loriot, deutscher Satiriker)
        1. Hello,

          Also sei Y: der laufwerksbuchstabe der Backup-Platte und %original% das zu sichernde Verzeichnis:

          +----------------------------------------------
             | copy Y:\volumeid.txt %original%
             | touch %original%\volumeid.txt
             | xcopy %original%\*.* Y:\ /e /c /h /r /k /d > %temp%\backup.log
             | copy %temp%\backup.log Y:\    | copy %temp%\backup.log %original%
             +----------------------------------------------

          Als Ergebnis hast du im Originalverzeichnis eine volumeid.txt, deren Inhalt idealerweise angibt, auf welche Platte das letzte backup gemacht wurde, und deren Timestamp angibt, wann das war. Eine Liste aller kopierten Dateien hast du außerdem in backup.log sowohl im Originalverzeichnis, als auch auf der Kopie.

          *puh*

          ganz schön viel Stoff, um die Fehlerquellen zu finden.
          Erstmal benutzt xcopy unter DOS7 (also im Win98) nicht immer die passenden (richtigen) Ausgabekanäle, sondern schreibt teilweise leider in den Bildschirmspeicher. Umleiten ist also schonmal Essig.

          Und ob der Rest auch beim zweiten Mal noch klappt, werde ich auch lieber in Ruhe ausprobieren. Ich meine nämlich, dass ich schonmal soweit war, und dann leider später festgestellt habe, dass das Erstverhalten anders ist, als das vom zweiten und dritten Mal.

          Harzliche Grüße vom Berg
          http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau