Ergebnis 1 bis 6 von 6

Thema: Verzeichnissinhalt per Batch vergleichen?

  1. #1
    fühlt sich hier wohl Avatar von opera-fansite
    Registriert seit
    27.08.02
    Ort
    Oslo ;-)
    Beiträge
    51

    Verzeichnissinhalt per Batch vergleichen?

    Hallo,
    weiß einer wie ich den Inhalt zweier Verzeichnisse vergleichen kann und dann geänderte Dateien in der Kopie aktualisieren kann?

    bisher mache ich es per (cmp.exe ist angehängt):
    --------------------------------------------------------------
    | cmp.exe -s adprefs.ini backup\adprefs.ini
    | if not errorlevel 1 goto Contacts.adr
    |
    | xcopy adprefs.ini backup /y /q
    --------------------------------------------------------------

    Allerdings funktioniert das für ganze Ordner nicht.
    Weiß jemand eine Alternative?
    Angehängte Dateien Angehängte Dateien
    • Dateityp: zip cmp.zip (5,1 KB, 256x aufgerufen)

  2.   Anzeige

     
  3. #2
    Elder Statesman Avatar von little tyrolean
    Registriert seit
    21.03.02
    Ort
    auf der Alm
    Beiträge
    9.454

    AW: Verzeichnissinhalt per Batch vergleichen?

    hi,
    häng' das mal in eine FOR-Schleife:

    FOR /R %%f IN (*.*) DO vergleich - wobei vergleich deine Batch ist....

    Näheres in der Online-Hilfe: Befehl FOR und Erweiterungen

  4. #3
    fühlt sich hier wohl Avatar von opera-fansite
    Registriert seit
    27.08.02
    Ort
    Oslo ;-)
    Beiträge
    51

    AW: Verzeichnissinhalt per Batch vergleichen?

    Funktioniert nicht ganz. Da bekomm ich immer die Meldung: "cmp.exe: missing operand"
    Sonst noch Ideen?

  5. #4
    gehört zum Inventar Avatar von SilverSurfer99
    Registriert seit
    01.09.01
    Beiträge
    709

    AW: Verzeichnissinhalt per Batch vergleichen?

    FOR /R %%f IN (*.*) DO vergleich - wobei vergleich deine Batch ist...
    ist auch nur die Grundstruktur -->
    ..DO CMP.exe -s QuellLfw:\QuellDir\%%f ZielLfw:\ZielDir\%%f

    Das Problem bei FOR-Anweisung ist, dass damit nur eine Zeile abgearbeitet wird,
    also die Befehle 'IF ERRORLEVEL 1 ..' und XCOPY nicht mehr zum Zuge kommen können.

    Lösung: Es muss ein zweiter Batch aufgerufen werden mit Übergabe der in der FOR-
    Anweisung gefundenen Dateinamen, etwa so

    ..DO CALL vergleich.bat %%f

    Vergleich.bat [.cmd; Datei muss im Pfad liegen; die übergebene Variable %%f wird hier zu %1]
    ---
    CMP.exe -s QuellLfw:\QuellDir\%1 ZielLfw:\ZielDir\%1
    if not errorlevel 1 if errorlevel 0 EXIT

    xcopy QuellLfw:\QuellDir\%1 ZielLfw:\ZielDir\%1 /y /q
    -----------------------------

    Ratschlag: Wenn nicht Riesendateien kopiert werden, scheint mir obige
    Lösung ziemlich umständlich, da nach deinem Batch bei Ungleichheit
    bedingungslos kopiert wird. Also einfach nur
    xcopy QuellLfw:\QuellDir\*.* ZielLfw:\ZielDir\*.* /y /q

    Für den Fall, dass auf QuellLfw:\QuellDir\ auch mal Dateien entfernt werden,
    müsstest du 'RD /S /Q QuellLfw:\QuellDir' [Syntax NT,W2k,XP]
    bzw. 'Deltree /y QuellLfw:\QuellDir' vorher aufrufen.

  6. #5
    fühlt sich hier wohl Avatar von opera-fansite
    Registriert seit
    27.08.02
    Ort
    Oslo ;-)
    Beiträge
    51

    AW: Verzeichnissinhalt per Batch vergleichen?

    Danke.
    Es funktioniert zwar noch nicht so wie es soll aber mit viel Bastelei bekomm ich es vielleicht doch noch hin.

  7. #6
    gehört zum Inventar Avatar von SilverSurfer99
    Registriert seit
    01.09.01
    Beiträge
    709

    AW: Verzeichnissinhalt per Batch vergleichen?

    OK xxx, du willst es selbst heraustüfteln, ist nicht verkehrt, denn
    hinter den bunten Buttons stecken meist auch nur diese knallharten
    Befehle.

    Einen TIPP gibt es aber noch (sieh das Gute liegt so nah ):
    Dein Ziel ist tatsächlich nur, geänderte Dateien in ein
    Sicherungsverzeichnis zu kopieren? Denn dafür gibt es bereits
    einen fertigen Befehl - und er heisst XCOPY: Wird nämlich eine
    Datei verändert, so wechselt das sogenannte Archivattribut der
    Datei von -A [nichts zu sichern] nach +A. Das lässt sich überprüfen
    durch Eingabe von 'Attrib *.*' und per XCOPY verwenden!

    XCOPY /? zeigt unter WinXP folgende Hilfe
    "Kopiert Dateien und Verzeichnisstrukturen.
    ------------------------------------------
    XCOPY Quelle [Ziel] [/A | /M] [/D[: Datum]] [/P] [/S [/E]] [/V] [/W]
    [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
    [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
    [/EXCLUDE: Datei1[+Datei2][+Datei3]...]

    Quelle Die zu kopierenden Dateien.
    Ziel Position und/oder Name der neuen Dateien.
    /A Kopiert nur Dateien mit gesetztem Archivattribut,
    Ändert das Attribut nicht.
    /M Kopiert nur Dateien mit gesetztem Archivattribut,
    setzt das Attribut nach dem Kopieren zurück.
    /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.
    /EXCLUDE: Datei1[+Datei2][+Datei3]...
    Gibt eine Liste von Zeichenfolgen an. Jede Zeichenfolge
    sollte in einer einzelnen Zeile in der Datei angezeigt werden.
    Wenn eine der Zeichenfolgen Teil des absoluten Verzeichnispfads
    der zu kopierenden Datei ist, wird diese Datei vom
    Kopiervorgang ausgeschlossen. Beispiel: Bei der
    Zeichenfolge \obj\ oder .obj werden alle Dateien
    unterhalb des Verzeichnisses OBJ bzw. alle Dateien mit
    der Erweiterung .obj vom Kopiervorgang ausgeschlossen.
    /P Fordert vor dem Erstellen jeder Zieldatei eine BestÄtigung.
    /S Kopiert Verzeichnisse und Unterverzeichnisse, die nicht leer sind.
    /E Kopiert alle Unterverzeichnisse (leer oder nicht leer).
    Wie /S /E. Mit dieser Option kann die Option /T geÄndert werden.
    /V šberprüft jede neue Datei auf Korrektheit.
    /W Fordert vor dem Beginn des Kopierens zu einem Tastendruck auf.
    /C Setzt das Kopieren fort, auch wenn Fehler auftreten.
    /I Falls Ziel nicht vorhanden ist und mehrere Dateien kopiert
    werden, nimmt XCOPY an, dass das Ziel ein Verzeichnis ist.
    /Q Zeigt beim Kopieren keine Dateinamen an.
    /F Zeigt die Namen der Quell- und Zieldateien beim Kopieren an.
    /L Listet die Dateien auf, die ggf. kopiert werden.
    /G Ermöglicht das Kopieren von verschlüsselten Dateien auf ein
    Ziel wo Verschlüsselung nicht unterstützt wird.
    /H Kopiert auch Dateien mit den Attributen 'Versteckt' und 'System'.
    /R šberschreibt schreibgeschützte Dateien.
    /T Erstellt die Verzeichnisstruktur, kopiert aber keine Dateien.
    Leere oder Unterverzeichnisse werden nicht kopiert. Um auch diese
    zu kopieren, müssen Sie die Optionen /T /E angeben.
    /U Kopiert nur Dateien, die im Zielverzeichnis vorhanden sind.
    /K Kopiert Attribute. StandardmÄáig wird 'Schreibgeschützt' gelöscht.
    /N Beim Kopieren werden die erzeugten Kurznamen verwendet.
    /O Kopiert Informationen über den Besitzer und ACL.
    /X Kopiert Dateiüberwachungseinstellungen (bedingt /O).
    /Y Unterdrückt die Aufforderung zur BestÄtigung, dass eine
    vorhandene Zieldatei überschrieben werden soll.
    /-Y Fordert zur BestÄtigung auf, dass eine bestehende
    Zieldatei überschrieben werden soll.
    /Z Kopiert Dateien in einem Modus, der einen Neustart ermöglicht.

    Die Option /Y kann in der Umgebungsvariable COPYCMD vordefiniert sein.
    Sie kann mit /-Y in der Befehlszeile deaktiviert werden."
    ------------------------------------------
    Der vollständige Befehl würde also lauten:

    XCOPY QuellLfw:\QuellDir\*.* ZielLfw:\ZielDir\*.* /M /Y [/S]

    /M Kopiert nur Dateien mit gesetztem Archivattribut,
    setzt das Attribut nach dem Kopieren zurück
    [die Quell-Datei wird danach auf gesichert gesetzt].
    /Y Unterdrückt die Aufforderung zur Bestätigung, dass eine
    vorhandene Zieldatei Überschrieben werden soll.
    /S Kopiert Verzeichnisse und Unterverzeichnisse, die nicht leer sind.

Ähnliche Themen

  1. Symbian-Wurm verbreitet sich erstmals per MMS
    Von Perry im Forum Unterhaltungselektronik
    Antworten: 4
    Letzter Beitrag: 09.03.05, 15:49
  2. Die spinnen, die Amis - Kapitel 546798563 - Tiere töten per Mausklick
    Von Supernature im Forum WWW News und Gerüchteküche
    Antworten: 1
    Letzter Beitrag: 15.02.05, 22:47
  3. [FTP-Server] Dateien am FTP per Batch loeschen
    Von stonez im Forum Netzwerke & Server
    Antworten: 6
    Letzter Beitrag: 19.12.04, 01:37
  4. [DOS] ">", oder "<" in eine Datei eintragen (als BATCH)
    Von NOW im Forum Alles rund um Windows
    Antworten: 7
    Letzter Beitrag: 21.10.04, 02:10
  5. Batch Programmierung
    Von schleuderprinz im Forum Programmierung & Webdesign
    Antworten: 7
    Letzter Beitrag: 04.11.03, 12:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •