xcopy

Kopiert Dateien und Verzeichnisse, einschließlich Unterverzeichnissen.

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.
[<Ziel>] Gibt das Ziel der Dateien an, die Sie kopieren möchten. Dieser Parameter kann einen Laufwerkbuchstaben und Doppelpunkt, einen Verzeichnisnamen, einen Dateinamen oder eine Kombination dieser Elemente 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 Ignoriert Fehler.
/v Überprüft jede Datei, da 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 Quell- und Zieldateinamen beim Kopieren an.
/l Generiert eine Liste von Dateien, die kopiert werden sollen, aber nicht aktiv die Dateien kopieren.
G Erstellt entschlüsselte Zieldateien , wenn das Ziel keine Verschlüsselung unterstützt.
/d [:MM-DD-YYYY] Kopiert Quelldateien, die nur auf oder nach dem angegebenen Datum geändert wurden. Wenn Sie keinen MM-DD-YYYY-Wert enthalten, xcopy kopiert alle Quelldateien , die neuer als vorhandene Zieldateien sind. Mit dieser Befehlszeilenoption können Sie Dateien aktualisieren, die geändert wurden.
/U Kopiert Dateien aus der Quelle , die nur im Ziel vorhanden sind.
/i Wenn die Quelle ein Verzeichnis ist oder Wildcards enthält und das Ziel nicht vorhanden ist, wird davon ausgegangen, xcopy dass ziel einen Verzeichnisnamen angibt und ein neues Verzeichnis erstellt. Kopiert dann xcopy alle angegebenen Dateien in das neue Verzeichnis. Fordert Sie standardmäßig xcopy auf, anzugeben, ob das Ziel eine Datei oder ein Verzeichnis ist.
/s Kopiert Verzeichnisse und Unterverzeichnisse, es sei denn, sie sind leer. Wenn Sie /s auslassen, xcopy funktioniert es innerhalb eines einzelnen Verzeichnisses.
/e Kopiert alle Unterverzeichnisse, auch wenn sie leer sind. Verwenden Sie /e mit den Optionen "/s " und "/t ".
/t Kopiert die Unterverzeichnisstruktur (das heißt die Struktur) nur, nicht dateien. Um leere Verzeichnisse zu kopieren, müssen Sie die Befehlszeilenoption /e einschließen.
/k Kopiert Dateien und speichert das schreibgeschützte Attribut auf Zieldateien , wenn sie in den Quelldateien vorhanden sind. 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 , die ihre Archivdateiattribute festlegen. /a ändert das Archivdateiattribute der Quelldatei nicht. Informationen zum Festlegen des Archivdateiattributes mithilfe von Attrib finden Sie unter Zusätzliche Verweise.
/m Kopiert Quelldateien , die ihre Archivdateiattribute festlegen. Im Gegensatz zu /a deaktiviert /m Archivdateiattribute in den Dateien, die in der Quelle angegeben sind. Informationen zum Festlegen des Archivdateiattributes mithilfe von Attrib finden Sie unter Zusätzliche Verweise.
/n Erstellt Kopien mithilfe der NTFS-kurzen Datei- oder Verzeichnisnamen. /n ist erforderlich, wenn Sie Dateien oder Verzeichnisse aus einem NTFS-Volume in ein FAT-Volume kopieren oder wenn die FAT-Dateisystembenennungskonvention (also 8,3 Zeichen) im Zieldateisystem erforderlich ist. Das Dateisystem destinatio* kann FAT oder NTFS sein.
/o Kopiert Dateibesitz- und Diskretionäre Zugriffssteuerungsliste (DACL)-Informationen.
/x Kopiert Dateiüberwachungseinstellungen und Systemzugriffssteuerungsliste (SACL)-Informationen (impliziert /o).
/ausschließen:FileName1[+[FileName2]][+[FileName3]( )] Gibt eine Liste der 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 von der Kopie ausgeschlossen. Wenn Sie beispielsweise die Zeichenfolgen-obj angeben, werden alle Dateien unter dem Verzeichnis-Obj oder alle Dateien mit der Obj-Erweiterung ausgeschlossen.
/y Unterdrückt die Eingabeaufforderung, um zu bestätigen, 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.
/komprimieren Anfordern der Netzwerkkomprimierung während der Dateiübertragung, sofern zutreffend.
/? Zeigt die Hilfe an der Eingabeaufforderung an.

Bemerkungen

  • Verwenden von /z

    Wenn Sie ihre Verbindung während der Kopierphase verlieren (z. B. wenn der Server offline die Verbindung entfernt), wird es fortgesetzt, nachdem Sie die Verbindung neu eingerichtet 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 aufgefordert, überschreiben zu können.

  • Kopieren verschlüsselter Dateien

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

  • Anfügen von Dateien

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

  • Standardwert für Ziel

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

  • Angeben, ob ziel eine Datei oder ein Verzeichnis ist

    Wenn das Ziel kein vorhandenes Verzeichnis enthält und nicht mit einem Backslash () 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 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 Nachricht mithilfe der Befehlszeilenoption /i unterdrücken, wodurch xcopy davon ausgegangen 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 Archivattributes für Zieldateien

    Der xcopy Befehl erstellt Dateien mit dem Archivattributesatz, ob dieses Attribut in der Quelldatei festgelegt wurde. Weitere Informationen zu Dateiattributen und Attrib finden Sie unter Weitere Verweise.

  • Vergleich von **xcopy und Diskcopy**

    Wenn Sie über einen Datenträger verfügen, der Dateien in Unterverzeichnissen enthält und sie in einen Datenträger kopieren möchten, der ein anderes Format aufweist, verwenden Sie den xcopy Befehl anstelle der Datenträgerkopie. Da der Datenträgerkopiebefehl Datenträger nach Nachverfolgen kopiert, muss Ihr Quell- und Zieldatenträger das gleiche Format aufweisen. Der xcopy Befehl verfügt nicht über diese Anforderung. Verwenden Sie xcopy nur, wenn Sie eine vollständige Datenträgerimagekopie benötigen.

  • Beenden von Codes für xcopy

    Zum Verarbeiten von Exitcodes, die von xcopyzurückgegeben werden, verwenden Sie den ErrorLevel-Parameterauf der Befehlszeile in einem Batchprogramm. Ein Beispiel für ein Batchprogramm, das Exitcodes verarbeitet, wenn, finden Sie weitere Verweise. In der folgenden Tabelle sind die einzelnen Exitcode und eine Beschreibung aufgeführt.

    Exitcode BESCHREIBUNG
    0 Dateien wurden ohne Fehler kopiert.
    1 Es wurden keine Dateien gefunden, die kopiert wurden.
    2 Der Benutzer hat STRG+C gedrückt, um zu beenden xcopy.
    4 Fehler bei der Initialisierung. Es gibt keinen ausreichenden Speicherplatz oder Speicherplatz, oder Sie haben einen ungültigen Laufwerknamen oder eine ungültige Syntax in der Befehlszeile eingegeben.
    5 Fehler beim Datenträgerschreibfehler.

Beispiele

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

xcopy a: b: /s /e

2. Um system- oder ausgeblendete Dateien im vorherigen Beispiel einzuschließen, fügen Sie die Option "/h " wie folgt hinzu:

xcopy a: b: /s /e /h

3. Um Dateien im \Reports-Verzeichnis mit den Dateien im \Rawdata-Verzeichnis zu aktualisieren, die seit dem 29. Dezember 1993 geändert wurden, 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, unabhängig vom Datum, geben Sie Folgendes ein:

xcopy \rawdata \reports /u

5. Um eine Liste der Dateien abzurufen, die vom vorherigen Befehl kopiert werden sollen (das heißt, 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. Um das Verzeichnis \Customer und alle Unterverzeichnisse in das Verzeichnis \\Public\Address on Network Drive H:zu kopieren, behalten Sie das schreibgeschützte Attribut bei, und werden Sie aufgefordert, wenn eine neue Datei auf H:erstellt wird:

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

7. Um den vorherigen Befehl zu beheben, stellen Sie sicher, dass xcopy das \Adressverzeichnis erstellt wird, wenn sie nicht vorhanden ist, und unterdrücken Sie die Meldung, die beim Erstellen eines neuen Verzeichnisses angezeigt wird, die Option "/i " wie folgt hinzu:

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

8. Sie können ein Batchprogramm erstellen, um Vorgänge auszuführen xcopy und den Batch zu verwenden , wenn der Befehl den Exitcode verarbeitet, wenn ein Fehler auftritt. Das folgende Batchprogramm verwendet beispielsweise ersetzende 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 das vorherige Batchprogramm zum Kopieren aller Dateien im C:\Prgmcode-Verzeichnis und deren Unterverzeichnissen zum Laufwerk B zu verwenden, geben Sie Folgendes ein:

copyit c:\prgmcode b:

Der Befehls-Dolmetscher ersetzt C:\Prgmcode für %1 und B: für %2, und verwendet xcopy dann die Befehlszeilenoptionen /e und /s . Wenn xcopy ein Fehler auftritt, liest das Batchprogramm den Exitcode und wechselt zur Bezeichnung, die in der entsprechenden IF ERRORLEVEL-Anweisung angegeben ist, und zeigt dann die entsprechende Nachricht an und beendet sie aus dem Batchprogramm.

9. In diesem Beispiel werden alle nicht leeren Verzeichnisse sowie Dateien mit der zugehörigen Dateierweiterung nach dem Sternchensymbol 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 bestimmte Quellparameterwert .\toc*.yml dieselben 3 Dateien, selbst wenn die beiden Pfadzeichen entfernt wurden.\ Es würden jedoch keine Dateien kopiert, wenn der Sternchen-Wildcard aus dem Quellparameter entfernt wurde, wodurch nur .\toc.yml.

Weitere Verweise