xcopy

Kopiert Dateien und Verzeichnisse, einschließlich Unterverzeichnisse.

Beispiele für das Verwenden dieses Befehls finden Sie unter Beispiele.

Syntax

Xcopy <Source> [<Destination>] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d [:MM-DD-YYYY]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a | /m}] [/n] [/o] [/x] [/exclude:FileName1[+[FileName2]][+[FileName3]]] [{/y | /-y}] [/z] [/b] [/j] [/compress]

Parameter

Parameter BESCHREIBUNG
<Quelle> Erforderlich. Gibt den Speicherort und die Namen der Dateien an, die Sie kopieren möchten. Dieser Parameter muss entweder ein Laufwerk oder einen Pfad enthalten.
[<Destination>] Gibt das Ziel der Zu kopierenden Dateien an. Dieser Parameter kann einen Laufwerkbuchstaben und einen Doppelpunkt, einen Verzeichnisnamen, einen Dateinamen oder eine Kombination aus diesen enthalten.
/w Die folgende Meldung wird eingeblendet und es wird auf Ihre Antwort gewartet, bevor mit dem Kopieren der Dateien begonnen wird:
Drücken Sie eine beliebige Taste, um mit dem Kopieren der Datei(en) zu beginnen
/p Fordert Sie auf, zu bestätigen, ob Sie jede Zieldatei erstellen möchten.
/c Ignoriert Fehler.
/v Prüft jede Datei, während sie in die Zieldatei geschrieben wird, um sicherzustellen, dass die Zieldateien mit den Quelldateien identisch sind.
/q Unterdrückt die Anzeige von xcopy-Meldungen.
/f Zeigt während des Kopierens die Namen der Quell- und Zieldateien an.
/l Generiert eine Liste der Dateien, die kopiert werden sollen, aber kopiert die Dateien nicht aktiv.
/g Erstellt entschlüsselte Zieldateien, wenn das Ziel keine Verschlüsselung unterstützt.
/d [:MM-DD-YYYY] Kopiert Quelldateien, die nur an oder nach dem angegebenen Datum geändert wurden. Wenn Sie keinen MM-TT-JJJJ-Wert angeben, werden alle xcopyQuelldateien kopiert, die neuer als vorhandene Zieldateien sind. Diese Befehlszeilenoption ermöglicht Ihnen die Aktualisierung von Dateien, die sich geändert haben.
/U Kopiert Dateien aus der Quelle, die nur am Ziel vorhanden sind.
/i Wenn die Quelle ein Verzeichnis ist oder Platzhalter enthält und das Ziel nicht vorhanden ist, nimmt xcopy an, dass das Ziel einen Verzeichnisnamen angibt und erstellt ein neues Verzeichnis. Dann kopiert xcopy alle angegebenen Dateien in das neue Verzeichnis. xcopy fordert Sie standardmäßig auf, anzugeben, ob das Ziel eine Datei oder ein Verzeichnis ist.
/s Kopiert Verzeichnisse und Unterverzeichnisse, sofern sie nicht leer sind. Wenn Sie /s weglassen, xcopy funktioniert in einem einzelnen Verzeichnis.
/e Kopiert alle Unterverzeichnisse, selbst wenn sie leer sind. Verwenden Sie /e mit den Befehlszeilenoptionen /s und /t.
/t Kopiert nur die Unterverzeichnisstruktur (d. h. die Struktur), nicht die Dateien. Um leere Verzeichnisse zu kopieren, müssen Sie die Befehlszeilenoption /e einschließen.
/k Kopiert Dateien und behält das schreibgeschützte Attribut für Zieldateien bei, sofern in den Quelldateien vorhanden. Standardmäßig entfernt xcopy das Schreibschutzattribut.
/r Kopiert schreibgeschützte Dateien.
/h Kopiert Dateien mit ausgeblendeten Und Systemdateiattributen. xcopy kopiert standardmäßig keine versteckten Dateien oder Systemdateien
/a Kopiert nur Quelldateien, für die ihre Archivdateiattribute festgelegt sind. /a ändert das Archivdatei-Attribut der Quelldatei nicht. Informationen zum Festlegen des Archivdateiattributes mithilfe von attrib finden Sie unter Verwandte Links.
/m Kopiert Quelldateien, deren Archivdateiattribute gesetzt sind. Im Gegensatz zu /a schaltet /m die Attribute von Archivdateien in den Dateien aus, die in der Quelle angegeben sind. Informationen zum Festlegen des Archivdateiattributes mithilfe von attrib finden Sie unter Verwandte Links.
/n Erstellt Kopien unter Verwendung der NTFS-Kurznamen von Dateien oder Verzeichnissen. /n ist notwendig, wenn Sie die Dateien oder Verzeichnisse von einem NTFS-Volume auf ein FAT-Volume kopieren oder wenn die FAT-Dateisystem-Namenskonvention (d.h. 8,3 Zeichen) auf dem Zieldateisystem erforderlich ist. Das Ziel-Dateisystem kann FAT oder NTFS sein.
/o Kopiert die Informationen zu Dateibesitz und DACL (Discretionary Access Control List).
/x Kopiert die Einstellungen für die Dateiprüfung und die Informationen der Systemzugriffskontrollliste (SACL) (impliziert /o).
/exclude:FileName1[+[FileName2]][+[FileName3]( )] Gibt eine Liste der Dateien an. Es muss mindestens eine Datei angegeben werden. Die Dateien enthalten Suchstrings, wobei jeder String in einer eigenen Zeile in der Datei steht. Stimmen die Zeichenfolgen mit einem Teil des absoluten Pfads der zu kopierenden Datei überein, wird diese Datei vom Kopiervorgang ausgeschlossen. Wenn Sie beispielsweise die Zeichenfolge obj angeben, werden alle Dateien unter dem Verzeichnis obj oder alle Dateien mit der Erweiterung .obj ausgeschlossen.
/y Unterdrückt die Eingabeaufforderung zur Bestätigung, dass Sie eine vorhandene Zieldatei überschreiben möchten.
/-y Fordert Sie auf zu bestätigen, dass Sie eine vorhandene Zieldatei überschreiben möchten.
/z Kopiert über ein Netzwerk im neustartbaren Modus.
/b Kopiert den symbolischen Link anstelle der Dateien. Dieser Parameter wurde in Windows Vista® eingeführt.
/j Kopiert Dateien ohne Pufferung. Empfohlen für sehr große Dateien. Dieser Parameter wurde in Windows Server 2008 R2 hinzugefügt.
/compress Verlangt ggf. eine Netzwerkkomprimierung während der Dateiübertragung.
/? Zeigt die Hilfe an der Eingabeaufforderung an.
/sparse Ermöglicht das Beibehalten des Sparse-Zustands von Dateien während des Kopierens.

Hinweise

  • Verwenden von /z

    Wenn Sie während der Kopierphase die Verbindung verlieren (z. B. wenn der Server offline geht), wird der Vorgang fortgesetzt, nachdem Sie die Verbindung wiederhergestellt haben. /z zeigt auch den Prozentsatz des abgeschlossenen Kopiervorgangs für jede Datei an.

  • Verwenden von /y in der COPYCMD-Umgebungsvariable.

    Sie können /y in der 'COPYCMD'-Umgebungsvariable verwenden. Sie können diesen Befehl überschreiben, indem Sie /-y in der Befehlszeile verwenden. Standardmäßig werden Sie zum Überschreiben aufgefordert.

  • Kopieren verschlüsselter Dateien

    Wenn verschlüsselter Dateien auf ein Volume, das EFS nicht unterstützt, kopiert werden, tritt ein Fehler auf. Entschlüsseln Sie die Dateien zunächst oder kopieren Sie die Dateien auf ein Volume, das EFS unterstützt.

  • Dateien anhängen

    Um Dateien anzuhängen, müssen Sie eine einzelne Datei als Ziel, aber viele Dateien als Quelle angeben (d. h. mit Platzhaltern oder im Format file1+file2+file3).

  • Standardwert für das Ziel

    Wenn Sie das Ziel weglassen, kopiert der Befehl xcopy die Dateien in das aktuelle Verzeichnis.

  • Angeben, ob das Ziel eine Datei oder ein Verzeichnis ist

    Sollte das Ziel kein vorhandenes Verzeichnis enthalten und auch nicht mit einem Backslash (\) enden, erscheint die folgende Meldung:

    Does <Destination> specify a file name or directory name on the target(F = file, D = directory)?
    

    Drücken Sie F, wenn die Datei oder die Dateien in eine Datei kopiert werden sollen. Drücken Sie D, wenn die Datei oder die Dateien in ein Verzeichnis kopiert werden sollen.

    Sie können diese Meldung mit Hilfe der Befehlszeilenoption /i unterdrücken, die xcopy veranlasst, davon auszugehen, dass das Ziel ein Verzeichnis ist, wenn die Quelle mehr als eine Datei oder ein Verzeichnis ist.

  • Verwenden des xcopy-Befehls zum Festlegen von Archivattributen für Zieldateien

    Der Befehl xcopy erstellt Dateien mit festgelegtem Archivattribute, unabhängig davon, ob dieses Attribut in der Quelldatei festgelegt wurde oder nicht. Weitere Informationen zu Dateiattributen und attrib finden Sie unter Verwandte Links.

  • Vergleich von xcopy und diskcopy

    Wenn Sie über einen Datenträger verfügen, der Dateien in Unterverzeichnissen enthält und sie auf einen Datenträger mit einem anderen Format kopieren möchten, verwenden Sie den xcopy Befehl anstelle von diskcopy. Da der Befehl diskcopy Datenträger track by track kopiert, müssen Ihre Quell- und Zieldatenträger das gleiche Format aufweisen. Für den Befehl xcopy gilt diese Anforderung nicht. Verwenden Sie xcopy, es sei denn, Sie benötigen eine vollständige Kopie des Laufwerks.

  • Fehler bei nicht ausreichendem Arbeitsspeicher

    Ein Fehler „unzureichender Arbeitsspeicher“ kann auftreten, wenn xcopy zum Kopieren von Dateien oder Ordnern, deren Dateinamenspfad mehr als 255 Zeichen umfasst, ausgeführt wird.

  • Exitcodes für xcopy

    Um die von xcopy zurückgegebenen Exitcodes zu verarbeiten, verwenden Sie den Parameter ErrorLevel in der if-Befehlszeile in einem Batch-Programm. Ein Beispiel für ein Batchprogramm, das Exitcodes mithilfe von if verarbeitet, finden Sie unter Verwandte Links. Die folgende Tabelle enthält die einzelnen Exitcodes und eine Beschreibung.

    Exitcode BESCHREIBUNG
    0 Dateien wurden ohne Fehler kopiert.
    1 Es wurden keine Dateien zum Kopieren gefunden.
    2 Der Benutzer hat CTRL+C gedrückt, um xcopy zu beenden.
    4 Es ist ein Initialisierungsfehler aufgetreten. Es ist nicht genügend Arbeitsspeicher oder Speicherplatz vorhanden, oder Sie haben einen ungültigen Laufwerknamen oder eine ungültige Syntax in der Befehlszeile eingegeben.
    5 Fehler beim Schreiben auf das Laufwerk.

Beispiele

1. Um alle Dateien und Unterverzeichnisse (einschließlich aller leeren Unterverzeichnisse) von Laufwerk A auf Laufwerk B zu kopieren, geben Sie Folgendes ein:

xcopy a: b: /s /e

2. Um alle Systemdateien oder versteckten Dateien in das vorherige Beispiel aufzunehmen, fügen Sie die Befehlszeilenoption /h wie folgt hinzu:

xcopy a: b: /s /e /h

3. Um Dateien im Verzeichnis \Reports mit den Dateien im Verzeichnis \Rawdata zu aktualisieren, die sich seit dem 29. Dezember 1993 geändert haben, geben Sie Folgendes ein:

xcopy \rawdata \reports /d:12-29-1993

4. Um alle Dateien zu aktualisieren, die in \Reports im vorherigen Beispiel vorhanden sind, geben Sie unabhängig vom Datum Folgendes ein:

xcopy \rawdata \reports /u

5. Um eine Liste der Dateien abzurufen, die mit dem vorherigen Befehl kopiert werden sollen (d. h., ohne die Dateien tatsächlich zu kopieren), geben Sie Folgendes ein:

xcopy \rawdata \reports /d:12-29-1993 /l > xcopy.out

Die Datei xcopy.out enthält alle Dateien, die kopiert werden sollen.

6. Wenn Sie das Verzeichnis \Customer und alle Unterverzeichnisse in das Verzeichnis \Public\Address auf dem Netzlaufwerk H: kopieren, das Nur-Lese-Attribut beibehalten und eine Aufforderung erhalten möchten, wenn eine neue Datei auf H: erstellt wird, geben Sie Folgendes ein:

xcopy \customer h:\public\address /s /e /k /p

7. Um den vorherigen Befehl auszugeben, sicherzustellen, dass xcopy das Verzeichnis \Address erstellt, wenn es noch nicht existiert, und die Meldung zu unterdrücken, die erscheint, wenn Sie ein neues Verzeichnis erstellen, fügen Sie die Befehlszeilenoption /i wie folgt hinzu:

xcopy \customer h:\public\address /s /e /k /p /i

8. Sie können ein Batchprogramm erstellen, um xcopy-Operationen auszuführen und den Batch-Befehl if verwenden, um den Exitcode zu verarbeiten, wenn ein Fehler auftritt. Das folgende Batchprogramm verwendet zum Beispiel austauschbare Parameter für die xcopy-Quell- und Zielparameter:

@echo off
rem COPYIT.BAT transfers all files in all subdirectories of
rem the source drive or directory (%1) to the destination
rem drive or directory (%2)
xcopy %1 %2 /s /e
if errorlevel 4 goto lowmemory
if errorlevel 2 goto abort
if errorlevel 0 goto exit
:lowmemory
echo Insufficient memory to copy files or
echo invalid drive or command-line syntax.
goto exit
:abort
echo You pressed CTRL+C to end the copy operation.
goto exit
:exit

Um mit Hilfe des obigen Batchprogramms alle Dateien im Verzeichnis C:\Prgmcode und seinen Unterverzeichnissen auf Laufwerk B zu kopieren, geben Sie ein:

copyit c:\prgmcode b:

Der Befehlsinterpreter ersetzt C:\Prgmcode für %1 und B: für %2 und verwendet dann xcopy mit den Befehlszeilenoptionen /e und /s. Wenn xcopy ein Fehler auftritt, liest das Batchprogramm den Exitcode und wechselt zu der bezeichnung, die in der entsprechenden IF ERRORLEVEL-Anweisung angegeben ist, zeigt dann die entsprechende Meldung an und beendet das Batchprogramm.

9. Dieses Beispiel enthält alle nicht leeren Verzeichnisse sowie Dateien mit der zugehörigen Dateierweiterung nach dem Sternsymbol.

xcopy .\toc*.yml ..\..\Copy-To\ /S /Y

rem Output example.
rem  .\d1\toc.yml
rem  .\d1\d12\toc.yml
rem  .\d2\toc.yml
rem  3 File(s) copied

Im vorherigen Beispiel kopiert dieser bestimmte Quellparameterwert .\toc*.yml dieselben 3 Dateien, auch wenn die beiden Pfadzeichen .\ entfernt wurden. Es würden jedoch keine Dateien kopiert, wenn das Sternchen aus dem Quellparameter entfernt wurde, sodass es nur .\toc.yml ist.