cbu-kl
Goto Top

Parameter

Hallo,

ich hab hier eine Batchdatei die eigentlich zwei Ordner synchronisieren soll.
Aber ich bekomme immer eine Fehlermeldung.

xcopy /s /d /y H:\test\ V:\test\
xcopy /s /d /y V:\test\ H:\test\
PAUSE

Also die erste Zeile versteh ich, also zum Teil.
Es bewirkt, dass die Dateien von dem einen Ornder in den anderen kopiert werden.

Meine Frage ist jetzt was die Parameter /s /d /y bedeuten und warum in der zweiten Zeile die Ordner nochmal anders herum aufgeschrieben sind.
Kann mir da jemand weiterhelfen?

Gruß cbu-kl

Content-Key: 81225

Url: https://administrator.de/contentid/81225

Printed on: April 16, 2024 at 21:04 o'clock

Member: Natureshadow
Natureshadow Feb 20, 2008 at 14:37:45 (UTC)
Goto Top
H:\>xcopy /?
[...]
/S Kopiert Verzeichnisse und Unterverzeichnisse, die nicht leer sind.

/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

/Y Unterdrückt die Aufforderung zur Bestätigung, dass eine
vorhandene Zieldatei überschrieben werden soll.

Also kopiert dein Script erst alle Dateien und Verzeichnisse, die neuer sind als die Datei im Zielverzeichnis oder dort nicht existieren, und zwar erst von H: nach V: und dann von V: nach H:. Ergo sind danach durch simples Kopieren von neuen Dateien beide Verzeichnisse identisch.

Das ist die Definition von synchronisieren, und das hast du ja schon erkannt ...

-nik
Member: cbu-kl
cbu-kl Feb 20, 2008 at 14:41:21 (UTC)
Goto Top
Danke.

Nur es funktioniert leider nicht.
Wenn ich die Batchdatei ausführe sagt er ungültiger Pfad.

Weiß aber nicht warum.

Gruß cbu-kl
Member: miniversum
miniversum Feb 20, 2008 at 14:43:01 (UTC)
Goto Top
Hier was meine cmd sagt:
E:\Dokumente und Einstellungen\%USERNAME%\Desktop>xcopy /?
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.

Das beteutet also:
Es werden alle Verzeichnise und unterverzeichnisse Kopiert in denen Daten stehen. Davon aber nur die dateien die noch nicht im Ziel existieren oder die die neuer sind als die Dateien im Ziel. Wird eine ältere Datei mit einer Neueren überschrieben wird nicht nachgefragt ob sie überschrieben werden darf.
Das ganze einmal vom Verzeichnis H:\test\ nach V:\test\ und einmal umgekehrt.
Auf diese Art existieren danach alle Dateien die in einem der Verzeichnisse vorhanden sind auch im andern Verzeichnis mit dem gleichen alter. Ein richtiges Syncronisieren ist es also nciht wirklich, da gelöschte Dateien nicht auch im andern Verzeichnis gelöscht werden und umbenante Dateien einfach nur kopiert, also neu angelegt werden und die alte besteht immernoch danach.

miniversum
Member: telefix1
telefix1 Feb 20, 2008 at 14:43:18 (UTC)
Goto Top
xcopy /s /d /y H:\test\ V:\test\
xcopy /s /d /y V:\test\ H:\test\
PAUSE


/s bewirkt, dass Verzeichnisse und/oder Unterverzeichnisse, die nicht leer sind, auch kopiert werden,
/d bewirkt, dass nur neuere als die Zieldateien Dateien kopiert werden,
/y unterdrückt eine Bestätigung, dass eine vorhandene Datei überschrieben werden darf.

Im o.g. Beispiel wird das Verzeichnis test auf V: mit den Daten von test auf H: gleichgeschrieben und anschl. V: mit den Daten von H:. Damit sind beide Verzeichnisse syncronisiert...

mfg telefix1

EDIT: upps, da waren andere wieder schneller...
Member: Natureshadow
Natureshadow Feb 20, 2008 at 14:46:11 (UTC)
Goto Top
OK, jetzt haben wir schon dreimal die gleiche Antwort. Sehr schön face-smile

Gibt es die beiden Verzeichnisse bei dir denn?
Member: miniversum
miniversum Feb 20, 2008 at 14:50:24 (UTC)
Goto Top
OK, jetzt haben wir schon dreimal die gleiche Antwort. Sehr schön face-smile

Nicht ganz. Kleiner Tip. Einer der Drei behauptet das man Verzeichnisse so nur bedingt syncronisieren kann ;)
Member: cbu-kl
cbu-kl Feb 20, 2008 at 14:55:21 (UTC)
Goto Top
Gibt es die beiden Verzeichnisse bei dir
denn?

ja die beiden gibt es bei mir H: ist lokal und V: ist das Netzlaufwerk zur NAS.
Member: Natureshadow
Natureshadow Feb 21, 2008 at 12:26:24 (UTC)
Goto Top
Ist ja spannend ... sicher, dass du dich da nirgendwo vertippt hast?

Habe das gerade getestet, es klappt wunderbar.
Member: cbu-kl
cbu-kl Feb 22, 2008 at 08:59:54 (UTC)
Goto Top
Danke schön!
So jetzt weiß ich warum die Dateien nochmal zurück kopiert werden, nur jetzt macht es die Batch nicht mehr warum?

Weiß das jemand? vorgestern ging es noch und heute morgen als ich die Batch ausgeführt habe ging es nicht mehr.
Ich hab nichts an der Batch geändert.

Gruß cbu-kl