Kommandozeilenbefehle: Übersicht • Variablen • ERRORLEVEL
Einige wichtige Befehle: dir • chkdsk • cd • md • rd • tree • del • attrib • if • xcopy • robocopy
Xcopy
Kommandozeilenbefehle für Stapeldateien (Wikibooks)
Wenn Sie den Befehl „xcopy“ eingeben, gefolgt von „ /?“, sehen Sie eine Übersicht der Befehlsparameter:
C:\Users\Klaus\Documents>xcopy /? Die Option /J 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] [/B] [/J] [/EXCLUDE:Datei1[+Datei2][+Datei3]...] [/COMPRESS] 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-d-y 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 die Größe jeder neuen Datei. /W Fordert vor dem Beginn des Kopierens zu einem Tastendruck auf. /C Setzt das Kopieren fort, auch wenn Fehler auftreten. /I Falls das 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 an ein Ziel, an dem 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 Verzeichnisse 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 erstellten Kurznamen verwendet. /O Kopiert Informationen über den Besitzer und die 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. /B Kopiert den symbolischen Link anstelle des Ziels des Links. /J Kopiert ohne E/A-Puffer. Für große Dateien empfohlen. /COMPRESS Fordert während der Dateiübertragung ggf. Netzwerkkomprimierung an. Die Option /Y ist eventuell in der Umgebungsvariablen COPYCMD voreingestellt. Dies wird durch /-Y auf der Befehlszeile überschrieben. C:\Users\Klaus\Documents>
Die Parameter
Code | Bedeutung |
---|---|
xcopy c:\*.doc d:\kopie\*.doc /s | kopiert alle Word-Dateien von Laufwerk c: einschließlich Unterverzeichnisse nach d:\kopie |
xcopy \\10.53.212.250\TEXTE\*.* d:\kopie\*.* /s | kopiert Dateien vom PC 10.53.212.250 aus dem Verzeichnis mit dem Freigabenamen TEXTE |
xcopy c:\*.* d:\kopie\*.* /s | versucht alle Dateien der Systempartition zu kopieren, scheitert aber an einer der ständig benutzten Betriebssystemdateien |
xcopy c:\*.* d:\kopie\*.* /s /c | wie davor, setzt aber trotz Fehler das Kopieren fort. |
xcopy c:\*.* d:\kopie\*.* /s /c /d:10-15-2015 | wie davor, kopiert nur Dateien ab 15.10.2015 und neuere. |
xcopy c:\*.* d:\diff\*.* /s /c /m | kopiert nur Dateien mit Archivbit, setzt Archivbit zurück (inkrementelle Sicherung). |
xcopy c:\*.* d:\diff\*.* /s /c /a | kopiert nur Dateien mit Archivbit, ändert das Archivbit nicht (differentielle Sicherung). |
Errorlevel-Code
Der Befehl xcopy gibt den folgenden ERRORLEVEL zurück:
ERRORLEVEL | Bedeutung |
---|---|
0 | Dateien wurden ohne Fehler kopiert. |
1 | Es wurden keine Dateien zum Kopieren gefunden. |
2 | Der Benutzer hat STRG+C gedrückt, um xcopy zu beenden. |
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. |
Eine (unvollständige) Auswertung ist folgendermaßen möglich:
xcopy %1 %2 /s
if errorlevel 4 echo Speicherplatz hat nicht gereicht
if errorlevel 2 echo Abbruch erfolgte mit Strg-C
if errorlevel 0 echo Kopieren erfolgreich beendet
Anmerkungen
Archivbit: Das Archivbit ist ursprünglich bei allen Dateien gesetzt. Wenn Sie noch nie eine Datensicherung gemacht haben, bei der das Archivbit zurückgesetzt wurde, kopiert der Beispielbefehl (mit dem Parameter /m) das gesamte Systemlaufwerk. Es entsteht also eine Vollsicherung (bei der allerdings zahlreiche Dateien des Betriebssystems fehlen). Für nachfolgende Datensicherungen gibt es zwei sinnvolle Möglichkeiten:
- Jedesmal, wenn Sie den Befehl mit /m wiederholen, werden nur die diejenigen Dateien gesichert, die seit der vorhergehenden Sicherung geändert worden sind.
- Wenn Sie für weitere Sicherungen den letzten Befehl (mit /a) verwenden, wird die Sicherung differenziell: Es werden alle seit der Vollsicherung geänderten Dateien erfasst.
Hinweis: Die in den Befehlen genannten Verzeichnisse (d:\kopie und d:\diff) müssen im Voraus angelegt werden.
Probleme
- Kein Vergleich mit dem Zielverzeichnis: XCOPY vergleicht beim Kopieren nicht, ob die zu kopierenden Dateien schon im Zielverzeichnis vorhanden sind. Wenn Sie Daten mehrmals nacheinander in das gleiche Verzeichnis kopieren, werden nicht nur die zwischenzeitlich veränderten Dateien kopiert. Die unveränderten Dateien werden ebenfalls zeitaufwändig kopiert.
Aus diesem Grund ist XCOPY ungeeignet, um beispielsweise regelmäßig seinen USB-Stick auf den neuesten Stand zu bringen. Mit ROBOCOPY geht das besser.
- Zuverlässigkeit:
- Bei sehr umfangreichen Kopieraufträgen ist XCOPY unzuverlässig. XCOPY erstellt zu Arbeitsbeginn eine Liste aller zu kopierenden Dateien. Wenn die Anzahl der Dateien größer als zehn- bis dreißigtausend ist, passt diese Liste nicht in den Speicher. Der Kopiervorgang ist dann unvollständig.
- Mitunter tauchen unzulässige Dateinamen in Verzeichnissen auf. Wenn XCOPY auf einen unzulässigen Dateinamen stößt, wird der Rest des Verzeichnisses oder der gesamte Rest der Festplattenpartition vermutlich nicht kopiert. Wie kommt es zu unzulässigen Dateinamen?
• Es kann sich um Dateien oder gespeicherte Links aus dem Internet handeln, die durch die Eingangskontrolle von Windows gerutscht sind.
• Ein defekter Dateinamen kann auch im Ergebnis eines Absturzes entstehen. - Das Kopieren kann fehlschlagen, wenn das Dateisystem auf Quell- und Ziel-PC unterschiedlich ist.
Microsoft hat für umfangreiche Kopierarbeiten ein besseres Programm entwickelt. Das Programm ROBOCOPY ist ein Kopierprogramm, welches deutlich robuster als XCOPY ist. Es gehört bis einschließlich Windows XP standardmäßig nicht zum Betriebssystem, sondern musste aus dem Internet heruntergeladen werden. In Windows Vista und Nachfolgern gehört es zum Betriebssystem, sogar mit Erläuterungen in deutscher Sprache.