Freigeben über


xcopy

Kopiert Dateien und Verzeichnisse, einschließlich Unterverzeichnissen.

Beispiele für die Verwendung 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]

Parameters

Parameter Description
<Quelle> Required. Gibt den Speicherort und die Namen der Dateien an, die Sie kopieren möchten. Dieser Parameter muss entweder ein Laufwerk oder einen Pfad enthalten.
[<Ziel>] Gibt das Ziel der Zu kopierenden Dateien an. Dieser Parameter kann einen Laufwerkbuchstaben und Doppelpunkt, einen Verzeichnisnamen, einen Dateinamen oder eine Kombination dieser Parameter enthalten.
/w Zeigt die folgende Meldung an und wartet auf Ihre Antwort, bevor Sie mit dem Kopieren von Dateien beginnen:
Drücken Sie eine beliebige Taste, um mit dem Kopieren von Dateien zu beginnen.
/p Fordert Sie auf, zu bestätigen, ob Sie jede Zieldatei erstellen möchten.
/c Ignores errors.
/v Überprüft jede Datei, wie sie in die Zieldatei geschrieben wird, um sicherzustellen, dass die Zieldateien mit den Quelldateien identisch sind.
/q Unterdrückt die Anzeige von xcopy Nachrichten.
/f Zeigt beim Kopieren Quell- und Zieldateinamen an.
/l Generiert eine Liste von Dateien, die kopiert werden sollen, aber die Dateien nicht aktiv kopieren.
/g Erstellt entschlüsselte Zieldateien , wenn das Ziel die Verschlüsselung nicht unterstützt.
/d [:MM-DD-YYYY] Kopiert Quelldateien, die nur an oder nach dem angegebenen Datum geändert wurden. Wenn Sie keinen Wert für MM-DD-YYYY angeben, werden alle Quelldateien kopiert, xcopy die neuer als vorhandene Zieldateien sind. Mit dieser Befehlszeilenoption können Sie Dateien aktualisieren, die sich geändert haben.
/u Kopiert Dateien aus der Quelle , die nur auf dem Ziel vorhanden sind.
/i Wenn source ein Verzeichnis ist oder Platzhalter enthält und destination nicht vorhanden ist, wird davon ausgegangen, dass destination einen Verzeichnisnamen angibt, xcopy und erstellt ein neues Verzeichnis. Kopiert dann xcopy alle angegebenen Dateien in das neue Verzeichnis. Standardmäßig werden Sie aufgefordert, xcopy anzugeben, ob es sich beim Ziel um eine Datei oder ein Verzeichnis handelt.
/s Kopiert Verzeichnisse und Unterverzeichnisse, es sei denn, sie sind leer. Wenn Sie /s weglassen, xcopy wird in einem einzelnen Verzeichnis gearbeitet.
/e Kopiert alle Unterverzeichnisse, auch wenn sie leer sind. Verwenden Sie /e mit den Befehlszeilenoptionen /s und /t .
/t Kopiert nur die Struktur des Unterverzeichnisses (d. h. die Struktur), nicht 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 es in den Quelldateien vorhanden ist. Entfernt standardmäßig xcopy das schreibgeschützte Attribut.
/r Kopiert schreibgeschützte Dateien.
/h Kopiert Dateien mit ausgeblendeten und Systemdateiattributen. Standardmäßig xcopy werden ausgeblendete oder Systemdateien nicht kopiert.
/a Kopiert nur Quelldateien , für die die Archivdateiattribute festgelegt sind. /a ändert das Archivdateiattribut der Quelldatei nicht. Informationen zum Festlegen des Archivdateiattributs mithilfe von attrib finden Sie unter Verwandte Links.
/m Kopiert Quelldateien , für die die Attribute der Archivdatei festgelegt sind. Im Gegensatz zu /a deaktiviert /m Archivdateiattribute in den Dateien, die in der Quelle angegeben sind. Informationen zum Festlegen des Archivdateiattributs mithilfe von attrib finden Sie unter Verwandte Links.
/n Erstellt Kopien mithilfe der NTFS-Kurzdatei oder verzeichnisnamen. /n ist erforderlich, wenn Sie Dateien oder Verzeichnisse von einem NTFS-Volume auf ein FAT-Volume kopieren oder wenn die Namenskonvention für das FAT-Dateisystem (d. h. 8,3 Zeichen) für das Zieldateisystem erforderlich ist. Das Zieldateisystem kann FAT oder NTFS sein.
/o Kopiert Dateibesitz- und Dacl-Informationen (File Ownership and Discretionary Access Control List).
/x Kopiert Dateiüberwachungseinstellungen und SACL-Informationen (System Access Control List) (impliziert /o).
/exclude:FileName1[+[FileName2]][+[FileName3]( )] Gibt eine Liste von Dateien an. Mindestens eine Datei muss angegeben werden. Jede Datei enthält Suchzeichenfolgen mit jeder Zeichenfolge in einer separaten Zeile in der Datei. Wenn eine der Zeichenfolgen einem Teil des absoluten Pfads der zu kopierenden Datei entspricht, wird diese Datei nicht kopiert. Wenn Sie z. B. die Zeichenfolge obj angeben, werden alle Dateien unterhalb des Verzeichnisses obj oder alle Dateien mit der Erweiterung .obj ausgeschlossen.
/y Unterdrückt die Eingabeaufforderung, um zu bestätigen, dass Sie eine vorhandene Zieldatei überschreiben möchten.
/-y Fordert 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 Fordern Sie ggf. die Netzwerkkomprimierung während der Dateiübertragung an.
/[-]sparse Aktiviert oder deaktiviert das Beibehalten des Sparse-Zustands von Dateien während der Kopiervorgangs. Wenn beide Parameter angegeben sind, überschreibt /-sparse/sparse.
/noclone Versucht nicht, das Klonen von Blöcken zu optimieren.
/? Zeigt die Hilfe an der Eingabeaufforderung an.

Remarks

  • Using /z

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

  • Verwendung von /y in der Umgebungsvariablen COPYCMD.

    Sie können /y in der Umgebungsvariablen COPYCMD verwenden. Sie können diesen Befehl überschreiben, indem Sie /-y in der Befehlszeile verwenden. Standardmäßig werden Sie aufgefordert, die Überschreibung zu überschreiben.

  • Kopieren verschlüsselter Dateien

    Das Kopieren verschlüsselter Dateien auf ein Volume, das EFS nicht unterstützt, führt zu einem Fehler. Entschlüsseln Sie die Dateien zuerst, oder kopieren Sie die Dateien auf ein Volume, das EFS unterstützt.

  • Appending files

    Wenn Sie Dateien anfügen möchten, geben Sie eine einzelne Datei für das Ziel an, aber mehrere Dateien für die Quelle (d. a. mithilfe von Wildcards oder file1+file2+file3-Format).

  • Standardwert für das Ziel

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

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

    Wenn das Ziel kein vorhandenes Verzeichnis enthält und nicht mit einem umgekehrten Schrägstrich () endet, wird die folgende Meldung angezeigt:

    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 Dateien in ein Verzeichnis kopiert werden sollen.

    Sie können diese Meldung unterdrücken, indem Sie die Befehlszeilenoption /i verwenden, die dazu führt, dass davon ausgegangen xcopy wird, dass das Ziel ein Verzeichnis ist, wenn die Quelle mehr als eine Datei oder ein Verzeichnis ist.

  • Verwenden des Befehls zum Festlegen des xcopy Archivattributs für Zieldateien

    Der xcopy Befehl erstellt Dateien mit dem Archiv-Attributsatz, unabhängig davon, ob dieses Attribut in der Quelldatei festgelegt wurde. Weitere Informationen zu Dateiattributen und attrib finden Sie unter Links zum Thema.

  • 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 diskcopy Befehl Datenträger nach "Nachverfolgen" kopiert, müssen Die Quell- und Zieldatenträger das gleiche Format aufweisen. Der xcopy Befehl hat diese Anforderung nicht. Verwenden Sie diese Anwendung xcopy , es sei denn, Sie benötigen eine vollständige Kopie des Datenträgerimages.

  • Nicht genügend Arbeitsspeicherfehler

    Ein Fehler "unzureichender Arbeitsspeicher" kann auftreten, wenn beim Kopieren einer Datei oder eines Ordners, deren Dateinamepfad größer als 255 Zeichen ist, ausgeführt xcopy wird.

  • Ausgangscodes für xcopy

    Um Exitcodes zu verarbeiten, die von zurückgegeben werden xcopy, verwenden Sie den Parameter ErrorLevelin der if-Befehlszeile in einem Batchprogramm. Ein Beispiel für ein Batch-Programm, das Exit-Codes mit if verarbeitet, finden Sie unter Verwandte Links. In der folgenden Tabelle sind die einzelnen Ausgangscode und eine Beschreibung aufgeführt.

    Exit code Description
    0 Dateien wurden ohne Fehler kopiert.
    1 Es wurden keine Zu kopierenden Dateien gefunden.
    2 Der Benutzer hat STRG+C zum Beenden xcopygedrückt.
    4 Initialisierungsfehler. 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 des Datenträgers.

Examples

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 System- oder ausgeblendete Dateien aus dem vorherigen Beispiel einzuschließen, fügen Sie die Befehlszeilenoption /h wie folgt hinzu:

xcopy a: b: /s /e /h

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

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

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

xcopy \rawdata \reports /u

5. Um eine Liste der Dateien zu erhalten, 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" listet jede Datei auf, die kopiert werden soll.

6. Geben Sie Folgendes ein, um das Verzeichnis \Customer und alle Unterverzeichnisse in das Verzeichnis \\Public\Address auf dem Netzlaufwerk H: zu kopieren, das schreibgeschützte Attribut beizubehalten und beim Erstellen einer neuen Datei auf H: aufgefordert zu werden:

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

7. Um den vorherigen Befehl abzugeben, stellen Sie sicher, dass xcopy das Verzeichnis \Address erstellt wird, wenn es nicht vorhanden ist, und unterdrücken Sie die Meldung, die beim Erstellen eines neuen Verzeichnisses angezeigt wird, und fügen Sie die Befehlszeilenoption /i wie folgt hinzu:

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

8. Sie können ein Batch-Programm erstellen, um Vorgänge auszuführen xcopy , und den Befehl batch if verwenden, um den Exit-Code zu verarbeiten, wenn ein Fehler auftritt. Das folgende Batchprogramm verwendet beispielsweise ersetzbare 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

Wenn Sie das vorherige Batchprogramm verwenden möchten, um alle Dateien im Verzeichnis "C:\Prgmcode" und deren Unterverzeichnisse zu Laufwerk B zu kopieren, geben Sie Folgendes ein:

copyit c:\prgmcode b:

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

9. In diesem Beispiel werden alle nicht leeren Verzeichnisse sowie Dateien mit der zugehörigen Dateierweiterung nach dem Sternchen kopiert.

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 spezielle 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 würde, sodass es nur .\toc.yml wäre.