CMD Timestamps auslesen/vergleichen

  • ...auch wenn CMD wohl fast schon nicht mehr zum programmieren zählt...

    Ich benutze Trillian, und zwar auf Desktop und Laptop. Es gibt zur Synchronisation der Logs ein tolles Tool (IMMerge), das die Logs der beiden Rechner durchforstet und dann von den jeweils zusammengehörigen Logs eine vollständige Logdatei macht, in der sogar die Sessions chronologisch korrekt angeordnet werden. Da das Programm etwas unhandlich ist, und man die Logs jeweils manuell in den Programmordner kopieren muss, dann das prog durchlaufen lassen, dabei noch Optionen angeben, und danach die fertigen Logs wieder zurück kopieren muss, habe ich ein Skript geschrieben, das alles erledigt. Also...

    1. zu synchronisierende Logs in Merge-Tool-Ordner kopieren (von beiden Rechnern)
    2. Merge-Tool auslösen
    3. Alte Logs löschen
    4. Aktualisierte Logs auf beide Rechner kopieren.

    Das läuft super. Ist ja auch kinderleicht. Aber das Problem damit ist, dass das Tool nicht darauf achtet, ob Änderungen an den Logdateien vorliegen, und somit alle Logs (und bei mir sind das mittlerweile über 200mb) bearbeitet und merged werden, obwohl gerade mal vielleicht 3 von den 200 Logs geändert wurden. Ich möchte nun ein Script haben in CMD, das von jeder Logdatei das Modify timestamp ausliest, und es mit dem timestamp der Logdatei auf dem anderen Rechner vergleicht, und bei Übereinstimmung die Datei _nicht_ kopiert. Also verständlicher dargestellt soll es so ablaufen:

    1. Script betrachtet Timestamp von Logdatei1 auf Rechner A
    2. Script betrachtet Timestamp von Logdatei1 auf Rechner B
    3. Bei Übereinstimmung wieder zu "1." mit Logdatei2 weiterfahren, bei Nichtübereinstimmen zu "4."
    4. Beide Dateien in den Merge-Tool-Ordner kopieren.
    5. Wenn sämtliche Dateien überprüft worden und alle veränderten rauskopiert sind: Merge-Tool auslösen.
    6. veränderte Dateien in Trillian-Log-Ordnern ersetzen. Daselbe mit einseitig komplett fehlenden Logs (Der Fall, wenn ein neuer Kontakt die erste Session hat und ein neuer Log erstellt wird).

    Ich hab wenig Ahnung vom Scripten überhaupt oder in CMD, und ich hab versucht, das selber rauszukriegen, aber ich versteh nicht, was ich da nun alles in die for schlaufe reinschreiben muss, damit das alles so geht wie ich will. :confused: Kann mir bitte jemand so eine Zeile schreiben? Btw sind die Logs in unterordnern von *\Logs\drin. Muss also für den ganzen Ast gelten.

  • Gibts dafür nicht das Archiv-Bit? Siehe help-page zu ATTRIB. Bei COPY (oder wars XCOPY?) kann man angeben, dass er nur files kopieren soll, die dieses Bit gesetzt haben. Vielleicht wird das ja bei einem Schreibzugriff geändert.

    Oder einfach cygwin installieren und das ganze in einer echten Shell programmieren :)

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Das "archive "Attribut bestimmt einfach welche Dateien nach dem backup schema kopiert werden sollen. Was ich brauche ist ein Vergleich von timestamps, und dabei auch nicht einfach nur der Vergleich zwischen 2 Dateien, wobei eine davon dann überschrieben wird, sondern der Vergleich zweier Dateien, die dann an eine 3. Stelle kopiert werden sollen, falls sie ungleich sind. Irgendwie ist CMD einfach nicht gut genug für so etwas.

    Ich schätze ich werde es in Java schreiben, das sollte nicht sehr schwer sein, auch als Anfänger. Java, weil das Tool selbst auch in Java geschrieben ist.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!