Frage Was ist der Windows-Befehlszeilenbefehl zum Kopieren von Dateien?


Was ist der Windows-Befehl Eingabeaufforderung zum Kopieren von Dateien?

Ich muss eine Datei von Standort A zu Standort B verschieben. Wenn der Ordner für Standort B nicht existiert, möchte ich ihn erstellen lassen.

Ich brauche eine Befehlszeile, damit ich sie automatisieren kann.

Die Version von Windows ist XP.


29
2018-05-05 12:50


Ursprung


robocopy funktioniert auch super - Nixphoe


Antworten:


Der Befehl xcopy ist was du suchst. Beispiel:

xcopy source destination /E /C /H /R /K /O /Y

Der obige Befehl kopiert die Quelle zum Ziel, Dateien und Verzeichnisse (einschließlich der leeren), stoppt nicht bei einem Fehler, kopiert versteckte und Systemdateien, überschreibt schreibgeschützte Dateien, behält Attribute und Besitz / ACL Informationen und unterdrückt die Aufforderung zum Überschreiben vorhandener Zieldateien.

/E    Copies directories and subdirectories, including empty ones.
      Same as /S /E. May be used to modify /T.
/C    Continues copying even if errors occur.
/H    Copies hidden and system files also.
/R    Overwrites read-only files.
/K    Copies attributes. Normal Xcopy will reset read-only attributes.
/O    Copies file ownership and ACL information.
/Y    Suppresses prompting to confirm you want to overwrite an
      existing destination file.

Für weitere Informationen tippen Sie ein xcopy /? und deine Befehlszeile.


40
2018-05-05 13:21



Das hat perfekt funktioniert. Vielen Dank. - David Basarab
Zukünftige Versionen von Windows enthalten RoboCopy. Von Vista XCOPY: "HINWEIS: Xcopy ist jetzt veraltet, bitte verwenden Sie Robocopy." - George Tsiokos
Interessanterweise, zwei Jahre später nach Ihrem Kommentar, George, "xcopy regiert immer noch die Welt" unter Windows 7.
Beachten Sie, dass eingebettete Windows XP-Umgebungen (POSReady 2009 usw.) nicht mit xcopy ausgeliefert werden. - Epoc
Ich habe eine Bearbeitung vorgeschlagen, um all diese Optionen aufzulisten ...! Wenn Sie es nicht automatisieren /E /H und vielleicht /K /O Sie erhalten einen langen Weg mit ein paar praktischen Ansagen - KCD


Benutzen md um den Ordner zu erstellen (es ist in Ordnung, wenn es bereits existiert)

Benutzen Kopieren oder Bewegung für Dateien und X Kopie für Ordner


6
2018-05-05 12:52



Können Sie mir ein Beispiel für die Syntax geben? - David Basarab
Kopieren Sie fred.txt copy_of_fred.txt - Adam Gibbins
Kopieren /? gibt Ihnen den Hilfetext, ähnlich wie eine DOS-Manpage. - Scottie T


In einer Batch-Datei:

if not exists locationB\nul mkdir locationB
copy locationA\file locationB

if not exists überprüft den Parameter, um zu sehen, ob er existiert, aber er funktioniert nur für Dateien. Um die Existenz von a zu überprüfen Verzeichnis, müssen Sie nach einer "Pseudo-Datei" namens "nul" suchen - das Vorhandensein dieser Datei prüfen wird immer true zurückgeben, wenn das Verzeichnis existiert.

Die Kopierzeile kopiert die aufgerufene Datei file im Verzeichnis locationA zu locationB und benennt die Datei gleich. Wenn Sie die Datei gleichzeitig umbenennen möchten, können Sie das auch tun:

copy locationA\file locationB\newfilename

2
2018-05-05 13:21





Wenn Sie die Möglichkeit haben möchten, die Kopie und andere erweiterte Funktionen zu synchronisieren (bestimmte Ordner ignorieren und nur bestimmte Platzhalter verwenden), dann schauen Sie sich an robocopy. In Vista und darüber hinaus enthalten, optional (von Resource Kit-Tools) in früheren Versionen.


2
2018-05-05 13:51



Für etwas Wichtiges werde ich auch Robocopy verwenden. Ich erinnere mich an einen großen Leistungsunterschied gegenüber xcopy beim Synchronisieren einer großen Anzahl von Dateien. - Kara Marfia


Verwenden Sie ROBOCOPY, wenn Sie Backup-Skripte erstellen. xcopy wurde eingestellt und wird voraussichtlich in naher Zukunft aus dem Verkehr gezogen werden. robocopy kann alles, was xcopy kann. Es ist auch flexibler und zuverlässiger. Das Erstellen von Skripten mit Robocopy wird sie zukunftssicher machen.


  1. Verwenden Sie robocopy, um Ordner einfach zu kopieren. Der Befehl robocopy ersetzt den Befehl xcopy. Es kann ganze Ordner schnell kopieren, ohne sich um die Definition der Inhalte kümmern zu müssen. Um beispielsweise den gesamten Inhalt des Verzeichnisses C: \ tools in den neuen Ordner D: \ backup \ tools zu kopieren, geben Sie Folgendes ein:

    robocopy C:\tools D:\backup\tools /e
    

    Der Modifikator / e weist robocopy an, alle Unterverzeichnisse einzuschließen. Dies beinhaltet leere Ordner. robocopy kopiert versteckte Dateien und Systemdateien automatisch. Es wird neue Verzeichnisse erstellen, wenn sie nicht am Zielort existieren.

  2. Spiegeln Sie ein Verzeichnis. Das Spiegeln eines Verzeichnisses eignet sich hervorragend zum Erstellen von Sicherungen. Die Spiegelungsoption von robocopy kopiert den gesamten Inhalt von der Quelle zum Ziel. Es wird dann alles an dem Ziel löschen, das an der Quelle nicht existiert. Dadurch wird sichergestellt, dass Ihr Backup nur die neuesten Versionen Ihrer Dateien enthält. Um beispielsweise C: \ Users \ Eigene Dateien in D: \ backup \ Eigene Dateien zu spiegeln, geben Sie Folgendes ein: [4]

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /mir
    

    Diese Funktion behält alle Berechtigungen der Originaldateien bei.

  3. Aktivieren Sie den Neustart. Möglicherweise möchten Sie die Möglichkeit einschließen, den Prozess neu zu starten, falls die Verbindung mitten im Kopiervorgang getrennt wird.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /z
    
  4. Protokollieren Sie den Kopiervorgang. Mit robocopy können Sie eine Protokolldatei erstellen. Dies kann Ihnen helfen, Probleme zu lokalisieren oder ein Archiv von dem zu erstellen, was kopiert wurde.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /log+:<filename>.txt
    

    Der Modifikator / log + fügt die vorhandene Protokolldatei an, statt sie zu überschreiben. Wenn Sie lieber die alte Protokolldatei überschreiben möchten, verwenden Sie /log:.txt.


1
2017-11-22 21:39





xcopy erstellt die Verzeichnisstruktur für Sie. Trick besteht darin, die Option / I zu verwenden und ein Sternchen am Ende des Dateinamens zu setzen, damit xcopy denkt, dass Sie mehrere Dateien kopieren. Andernfalls werden Sie gefragt, ob der Zielname der gewünschte Dateiname oder der gewünschte Verzeichnisname ist . Zum Beispiel.

xcopy /I c:\<SourceDir>\<SourceFile> c:\<TargetDirThatDoesNOTExist>

Ich würde mich auch RoboCopy ansehen, aber Sie müssen es aus dem Resource Kit holen, da es nicht in Windows bis Vista ist.


0
2018-05-05 13:21





Der obige Befehl erstellt eine zusätzliche Verzeichnisebene mit dem Namen der Quelldatei. So... xcopy / I srcdir \ dir1 \ dir2 \ datei1.txt * destdir \ dir1 \ dir2 \ datei1.txt führt zu destdir \ dir1 \ dir2 \ file1.txt \ file1.txt


-1
2018-06-10 15:25



Es macht keinen Sinn, eine so alte Frage zu beantworten, die bereits eine akzeptierte Antwort hat und keinen zusätzlichen Wert für Ihre Antwort liefert. - alphamikevictor