Robocopy

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von Lingo.

    Hallo Zusammen

    Ich möchte mit folgenden Kriterien Dateien von VerzeichnisA nach VerzeichnisB kopieren:

    - Es sollen nur neue oder geämderte Dateien kopiert warden.
    - Im Quellverzeichnis gelöschte Dateien sollen im Zielverzeichnis nicht gelöscht warden.

    Ich habe den Befehl /MIR gefunden. Jedoch erfüllt dieser Befehl meinen zweiten Kriterienpunkt nicht.

    Kann mir jemand weiterhelfen?

    Freundliche Grüsse

    Lingos
    Spoiler anzeigen


    -------------------------------------------------------------------------------
    ROBOCOPY :: Robustes Dateikopieren fr Windows
    -------------------------------------------------------------------------------

    Gestartet: Fri May 09 XX:XX:XX 2014

    Syntax :: ROBOCOPY Quelle Ziel [Datei [Datei]...] [Optionen]

    Quelle :: Quellverzeichnis (Laufwerk:\Pfad oder \\Server\Freigabe\Pfad)
    Ziel :: Zielverzeichnis (Laufwerk:\Pfad oder \\Server\Freigabe\Pfad)
    Datei :: Zu kopierende Dateien (Namen/Platzhalter: Standard ist "*.*")

    ::
    :: Kopieroptionen:
    ::
    /S :: Kopiert Unterverzeichnisse, jedoch keine leeren Unterverzeichnisse.
    /E :: Kopiert Unterverzeichnisse, einschlieálich leerer Unterverzeichnisse.
    /LEV:n :: Kopiert nur die obersten Ebenen der Quellverzeichnisstruktur.

    /Z :: Kopiert Dateien im Neustartmodus.
    /B :: Kopiert Dateien im Sicherungsmodus.
    /ZB :: Verwendet den Neustartmodus. Im Fall einer Zugriffsverweigerung wird der Sicherungsmodus verwendet.
    /EFSRAW :: Kopiert alle verschlsselten Dateien im EFS RAW-Modus.

    /COPY:copyflags:: Gibt an, welche Inhalte fr Dateien kopiert werden sollen (der Standard ist "/COPY:DAT").
    (Kopierflags : D=Daten, A=Attribute, T=Zeitstempel).
    (S=Sicherheit=NTFS-ACLs, O=Besitzerinformationen, U=šberwachungsinformationen).

    /DCOPY:T :: Kopiert Verzeichniszeitstempel.

    /SEC :: Kopiert Dateien mit Sicherheitsinformationen (entspricht "/COPY:DATS").
    /COPYALL :: Kopiert alle Dateiinformationen (entspricht "/COPY:DATSOU").
    /NOCOPY :: Kopiert keine Dateiinformationen (eignet sich fr die Verwendung mit "/PURGE").

    /SECFIX :: Korrigiert die Dateisicherheit in allen Dateien, auch in ausgelassenen Dateien.
    /TIMFIX :: Korrigiert die Uhrzeitangaben fr Dateien in allen Dateien, auch in ausgelassenen Dateien.

    /PURGE :: L”scht Zieldateien/-verzeichnisse, die in der Quelle nicht mehr vorhanden sind.
    /MIR :: Spiegelt eine Verzeichnisstruktur (Entspricht "/E" mit "/PURGE").

    /MOV :: Verschiebt Dateien (l”scht Dateien nach dem Kopieren an der Quelle).
    /MOVE :: Verschiebt Dateien UND Verzeichnisse (l”scht sie nach dem Kopieren an der Quelle).

    /A+:[RASHCNET] :: Fgt die vorhandenen Attribute den kopierten Dateien hinzu.
    /A-:[RASHCNET] :: Entfernt die vorhandenen Attribute von den kopierten Dateien.

    /CREATE :: Erstellt eine Verzeichnisstruktur und nur Dateien mit einer L„nge von Null.
    /FAT :: Erstellt Zieldateien nur unter Verwendung von 8.3 FAT-Dateinamen.
    /256 :: Deaktiviert die Untersttzung fr sehr lange Pfade (> 256 Zeichen).

    /MON:n :: šberwacht die Quelle. Wird erneut ausgefhrt, wenn mehr als n Žnderungen gefunden werden.
    /MOT:m :: šberwacht die Quelle. Wird bei einer Žnderung erneut ausgefhrt in m Minuten.

    /RH:hhmm-hhmm :: Ausfhrungsstunden - Steuert, wann neue Kopiervorg„nge gestartet werden k”nnen.
    /PF :: šberprft die Ausfhrungsstunden pro einzelne Datei (nicht pro Durchgang).

    /IPG:n :: Abstand zwischen Paketen (ms), um bei langsamen Verbindungen Bandbreite freizugeben.

    /SL :: Kopiert symbolische Verknpfungen gegenber dem Ziel.

    /MT[:n] :: Multithreadkopien mit n Threads erstellen (Standardwert: 8).
    n muss zwischen 1 und 128 (jeweils einschlieálich) liegen.
    Die Option ist nicht mit "/IPG" und "/EFSRAW" kompatibel.
    Die Ausgabe kann mit "/LOG" umgeleitet werden,
    um eine bessere Leistung zu erzielen.

    ::
    :: Dateiauswahloptionen:
    ::
    /A :: Kopiert nur Dateien mit dem "Archive"-Attribut.
    /M :: Kopiert nur Dateien mit dem "Archive"-Attribut und setzt das Attribut zurck.
    /IA:[RASHCNETO]:: Schlieát nur Dateien ein, bei denen eines der Attribute festgelegt ist.
    /XA:[RASHCNETO]:: Schlieát Dateien aus, bei denen eines der Attribute festgelegt ist.

    /XF Datei[Datei]:: Schlieát Dateien aus, die mit den angegebenen Namen/Pfaden/Platzhaltern bereinstimmen.
    /XD Verz.[Verz.]:: Schlieát Verzeichnisse aus, die mit den angegebenen Namen/Pfaden bereinstimmen.

    /XC :: Schlieát ge„nderte Dateien aus.
    /XN :: Schlieát neuere Dateien aus.
    /XO :: Schlieát „ltere Dateien aus.
    /XX :: Schlieát zus„tzliche Dateien und Verzeichnisse aus.
    /XL :: Schlieát einsame Dateien und Verzeichnisse aus.
    /IS :: Schlieát identische Dateien ein.
    /IT :: Schlieát optimierte Dateien ein.

    /MAX:n :: Maximale Dateigr”áe - schlieát Dateien aus, die gr”áer als n Bytes sind.
    /MIN:n :: Minimale Dateigr”áe - schlieát Dateien aus, die kleiner als n Bytes sind.

    /MAXAGE:n :: Maximales Dateialter - schlieát Dateien aus, die „lter als n Tage/Datum sind.
    /MINAGE:n :: Minimales Dateialter - schlieát Dateien aus, die neuer als n Tage/Datum sind.
    /MAXLAD:n :: Maximales Datum des letztes Zugriffs - schlieát Dateien aus, die seit n nicht verwendet wurden.
    /MINLAD:n :: Minimales Datum des letztes Zugriffs - schlieát Dateien aus, die seit n verwendet wurden.
    (Wenn n < 1900, dann ist n = n Tage, andernfalls ist n = Datum im Format JJJJMMTT).

    /XJ :: Schlieát Abzweigungspunkte aus (werden normalerweise standardm„áig eingeschlossen).

    /FFT :: Geht von FAT-Uhrzeitangaben fr Dateien aus (Granularit„t von zwei Sekunden).
    /DST :: Kompensiert Zeitunterschiede von einer Stunden aufgrund der Sommerzeit.

    /XJD :: Schlieát Abzweigungspunkte fr Verzeichnisse aus.
    /XJF :: Schlieát Abzweigungspunkte fr Dateien aus.

    ::
    :: Wiederholungsoptionen:
    ::
    /R:n :: Anzahl von Wiederholungsversuchen bei fehlerhaften Kopiervorg„ngen. Der Standardwert ist 1 Million.
    /W:n :: Wartezeit zwischen Wiederholungsversuchen. Der Standardwert ist 30 Sekunden.

    /REG :: Speichert "/R:n" und "/W:n" in der Registrierung als Standardeinstellungen.

    /TBD :: Wartet darauf, dass Freigabenamen definiert werden (Wiederholungsfehler 67).

    ::
    :: Protokollierungsoptionen :
    ::
    /L :: Listet nur auf. Es werden keine Kopiervorg„nge ausgefhrt, Zeitstempel erstellt oder Dateien gel”scht.
    /X :: Meldet alle zus„tzlichen Dateien, nicht nur die ausgew„hlten Dateien.
    /V :: Erstellt eine ausfhrliche Ausgabe mit ausgelassenen Dateien.
    /TS :: Schlieát Zeitstempel von Quelldateien in die Ausgabe ein.
    /FP :: Schlieát den vollst„ndigen Pfadnamen von Dateien in die Ausgabe ein.
    /BYTES :: Gibt GrӇen in Bytes aus.

    /NS :: Keine GrӇe - DateigrӇen werden nicht protokolliert.
    /NC :: Keine Klasse - Dateiklassen werden nicht protokolliert.
    /NFL :: Keine Dateiliste - Dateinamen werden nicht protokolliert.
    /NDL :: Keine Verzeichnisliste - Verzeichnisnamen werden nicht protokolliert.

    /NP :: Kein Status - der Prozentsatz kopierter Elemente wird nicht angezeigt.
    /ETA :: Zeigt die ungef„hre Empfangszeit der kopierten Dateien an.

    /LOG:Datei :: Gibt den Status der Protokolldatei aus (berschreibt das vorhandene Protokoll).
    /LOG+:Datei :: Gibt den Status der Protokolldatei aus (wird an das vorhandene Protokoll angefgt).

    /UNILOG:Datei :: Gibt den Status der Protokolldatei als UNICODE aus (berschreibt das vorhandene Protokoll).
    /UNILOG+:Datei :: Gibt den Status der Protokolldatei als UNICODE aus (wird an das vorhandene Protokoll angefgt).

    /TEE :: Gibt Daten in das Konsolenfenster und die Protokolldatei aus.

    /NJH :: Kein Auftragsheader.
    /NJS :: Keine Auftragszusammenfassung.

    /UNICODE :: Gibt den Status als UNICODE aus.

    ::
    :: Auftragsoptionen:
    ::
    /JOB:Auftragsname :: šbernimmt Parameter aus der angegebenen Auftragsdatei.
    /SAVE:Auftragsname :: Speichert Parameter in der angegebenen Auftragsdatei.
    /QUIT :: Beendet den Vorgang nach der Verarbeitung der Befehlszeile (zum Anzeigen von Parametern).
    /NOSD :: Es ist kein Quellverzeichnis angegeben.
    /NODD :: Es ist kein Zielverzeichnis angegeben.
    /IF :: Schlieát die folgenden Dateien ein.


    Evtl findest hier drinnen was :D
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Ich habe den Befehl /PURGE in der Liste gefunden.
    Wie ich dies jedoch verstehe macht dieser genau das Gegenteil.
    Kann man diesem Befehl einen weiteren beifügen, dass dies aufgehoben wird?

    Oder auf welchen Befehl wolltest du mich aufmerksam machen?
    Ich verstehe deine Anforderungen nicht ganz:
    Also du willst jedes ma wenn du den Befel/die Batch startes nur die geänderten Dateien von (nur als Bsp!) %userprofile%\documents\ nach \\NAS\backup\ kopieren
    und dann alle KOPIERTEN Dateien in %userprofile%\documents\ und nur hier löschen oder wie?
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Statt /MIR nimm einfach /E wenn du mir Quelle und Ziel aufschreibst dann schreib ich dir die Zeile.
    Willst du den Bildlauf sehen dann nimmst du noch /TEE dazu und log schreiben ist auch ganz einfach:

    Hast du mehrere Vorgänge in einer .cmd Datei dann musst du in der ersten Zeile LOG: schreiben und bei allen weiteren Zeilen LOG+: dann wird die Log fortgeführt.
    Wie gesagt wenn du mir genaue Angaben gibst schreib ich dir so ne Zeile.

    Bsp.:
    robocopy "C:\Temp" "H:\Temp" /E /XF Thumbs.db /NP /LOG:"C:\Temp\logfile.log"

    EDIT: noch ein Tipp: wenn du ganz hinten /L schreibst dann schaltest du in den Probiermodus d.h. es wird eine Log geschrieben (sofern du das angibst) aber es wird nichts kopiert, du kannst also zuerst einmal nachsehen was passieren würde.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Snaptu“ ()

    genau!
    /E - sagt einfach nur vorhandene Dateien miteinander abgleichen aber kein volles Synchronisieren wie z.b. /MIR also es werden keine Dateien die am Ziel mehr vorhanden sind gelöscht.
    mit /XF bzw. /XD kannst du bestimmte Files/Ordner vom Vorgang ausschließen, wenn du es nicht willst nimms einfach weg.
    /NP - zeigt dir keinen Fortschritt an das heißt im Command-Fenster steht nur deine Robocopy Zeile und wenn beendet wurde schließt es sich. mit /TEE würde der Fortschritt vollständig angezeigt.
    /LOG - tja sagt eh schon der Name
    /L habe ich in meinem Post oben ergänzt, das ist der Probiermodus.
    /MIR - ist die kombination aus /E und /PURGE also eine Spiegelung anlegen, das willst du ja aber nicht.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    @Snaptu

    Hab es gerade ausprobiert. Jedoch scheint es mir, dass es nicht ganz funktioniert.
    Folgende Errormeldung kommt:

    2014/05/09 10:29:51 ERROR 123 (0x0000007B) Accessing Source Directory C:\Users\anna\Desktop\ C:\Temp\Quell\
    The filename, directory name, or volume label syntax is incorrect.



    Es scheint mir, dass mein Quellverzeichnis falsch angegeben ist. Jedoch sehe ich den Fehler nicht.
    Hat es mit den Zeichen \ / zu tun?

    Zu deinem Code schnipsel für was ist die Datei Thumbs.db gut?
    Ah nice werde ich einbauen!
    Weisst du wie ich den Laufwerkbuchstabe von einem eingesteckten USB bekomme?

    EDIT:

    Habe %cd% gefunden und werde somit den Laufwerkbuchstaben auslesen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Lingo“ ()

    Hi,

    den Laufwerksbuchstaben kannst du ja beliebig vergeben. Windowstaste+R->"diskmgmt.msc"->dort die gewünschten Einstellungen vornehmen.

    Solltest dir vllt. noch für robocopy die Optionen /B, /FFT, /M, /A, /E und /MIR anschauen:
    /E :: Kopiert Unterverzeichnisse, einschließlich leerer Unterverzeichnisse.
    /B :: Kopiert Dateien im Sicherungsmodus.
    /MIR :: Spiegelt eine Verzeichnisstruktur (Entspricht "/E" mit "/PURGE").
    /A :: Kopiert nur Dateien mit dem "Archive"-Attribut.
    /M :: Kopiert nur Dateien mit dem "Archive"-Attribut und setzt das Attribut zurück.
    /FFT :: Geht von FAT-Uhrzeitangaben für Dateien aus (Granularität von zwei Sekunden).

    (Ausgabe via robocopy /?|findstr /I "\/[baem].\:\: \/fft.\: \/mir.\:")


    Weitere Möglichkeit: alle existenten Laufwerke ermitteln. Einfach String deklarieren mit Wert "abcdef....xyz", inner Schleife durchgehen und via if exist %%i echo Laufwerk %%i:\ vorhanden
    Oder andere Möglichkeit für bestimmtes (USB-)Laufwerk: Benutzer den Laufwerksbuchstaben selbst eingeben lassen:

    Quellcode

    1. @echo off
    2. title Sicherungsskript
    3. cls
    4. echo.
    5. set /p drive=Laufwerksbuchstabe:
    6. if exist %drive%: goto :weiter
    7. echo Dieses Laufwerk existiert nicht
    8. exit
    9. :weiter
    10. echo Gut, der Kram wird auf Laufwerk %drive%:\ gesichert
    11. rem [Sicherung beginnt...]
    12. echo Sicherung abgeschlossen
    13. pause>nul
    14. exit


    Tipp: Logdatei erzeugen entweder indem du umleitest (via Pipe, also robocopy "<quelle>" "<ziel>" *.* /WTF /ETC|%userprofile%\desktop\sicherungsprotokolle\sicherung_vom_%date%_%time:~0,2%.%time:~3,2%.%time:~6,2%_uhr.txt) oder den Robocopy-Schalter /LOG bzw. /LOG+ verwendest
    Tipp2: Filter geh'n auch: robocopy "<quelle>" "<ziel>" *.pdf /ETC

    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Link275“ ()