Trojaner-Board

Trojaner-Board (https://www.trojaner-board.de/)
-   Alles rund um Windows (https://www.trojaner-board.de/alles-rund-um-windows/)
-   -   mit xcopy nur nicht vorhandene Dateien kopieren (https://www.trojaner-board.de/184006-xcopy-nur-vorhandene-dateien-kopieren.html)

Ladekabel612 17.01.2017 22:03

mit xcopy nur nicht vorhandene Dateien kopieren
 
Hi,

Ich versuche mich kurz zu halten:

Ich möchte Daten von meinem System auf ein externes Laufwerk sichern, wo allerdings schon Dateien von meinem System drauf sind. Habe immer xcopy genutzt, allerdings will ich nicht jedes mal die Frage verneinen, dass nichts überschrieben werden soll.

Bin nun über Google auf diese bat gestoßen (habe sie schon für meine bedürfnis angepasst)

Code:

@echo off
setlocal enabledelayedexpansion

set quelle=c:\users\tygan\
set ziel=e:
set maske=*.jpg

echo. > %temp%\schonda.txt
for /f "tokens=*" %%d in ('dir "%ziel%\%maske%" /b /s') do (
  set zieldatei=%%d
  set quelldatei=!zieldatei:%ziel%\=%quelle%\!
  echo !quelldatei! >> %temp%\schonda.txt
)
xcopy "%quelle%\%maske%" "%ziel%" /s /i /c /k /e /exclude:%temp%\schonda.txt
del %temp%\schonda.txt

Problem hierbei ist die maske, die nur eine dateiendung unterstützen tut. Da ich aber ein ganzes Benutzerprofil sichern wollte (wo unterschiedlicher kram drinne liegt, .exe, .jpg, .gif etc.) wollte ich mal nachfragen ob man die .bat irgendwie modifizieren kann, dass sie schaut welche Dateien bereits dort sind und diese überspringen tut.

Zitat:

Für die Dateinamen- und Dateimaskeneigenschaften gelten die folgenden Einschränkungen:
Es kann nur eine Dateimaske oder ein Dateiname pro Empfangsspeicherort oder Sendeport angegeben werden.
Quelle: https://msdn.microsoft.com/de-de/library/aa578688.aspx

felix1 17.01.2017 22:25

Da stehe ich eher auf Robocopy.

Ladekabel612 17.01.2017 23:44

Mhm, gut. Probiere ich mich mal in robocopy reinzufuchsen. Danke

So nach dem ich ein wenig über Robocopy gelesen habe, habe ich so meine Zweifel.

Zitat:

/purge
Deletes destination files and directories that no longer exist in the source.
/mir
Mirrors a directory tree (equivalent to /e plus /purge)
Ich bin nicht sonderlich scharf drauf, dass meine Vorhandenen Daten auf der externen Platte die nicht mehr in der Quelle liegen gelöscht werden.

cosinus 18.01.2017 12:25

aus der xcopy Hilfe: (xcopy /?)


Zitat:

/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.



Code:

C:\>xcopy /?
Kopiert Dateien und Verzeichnisstrukturen.

XCOPY Quelle [Ziel]        [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
                          [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                          [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
                          [/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 die Größe jeder neuen Datei.
  /W        Fordert vor dem Beginn des Kopierens zu einem Tastendruck auf.
  /C        Setzt das Kopieren fort, auch wenn Fehler auftreten.
  /I        Falls das 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 an ein
            Ziel, an dem 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 Verzeichnisse 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 erstellten Kurznamen verwendet.
  /O        Kopiert Informationen über den Besitzer und die 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.
  /B        Kopiert den symbolischen Link anstelle des Ziels des Links.
  /J        Kopiert ohne E/A-Puffer. Für große Dateien empfohlen.

Die Option "/Y" kann in der Umgebungsvariable COPYCMD vordefiniert sein.
Sie kann mit "/-Y" in der Befehlszeile deaktiviert werden.

C:\>



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:57 Uhr.

Copyright ©2000-2025, Trojaner-Board


Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131