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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 81225
Url: https://administrator.de/forum/parameter-81225.html
Ausgedruckt am: 10.04.2025 um 04:04 Uhr
9 Kommentare
Neuester Kommentar
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
[...]
/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
Hier was meine cmd sagt:
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
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
xcopy /s /d /y H:\test\ V:\test\
xcopy /s /d /y V:\test\ H:\test\
PAUSE
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...