2010-11-01 21:50:02 +0000 2010-11-01 21:50:02 +0000
72
72

Kommandozeilenbefehl zum Kopieren des gesamten Verzeichnisses (einschließlich Verzeichnisordner) in ein anderes Verzeichnis

Ich möchte ein Verzeichnis in ein anderes Verzeichnis kopieren. Zum Beispiel gibt es die Verzeichnisse C:/test und C:/test2.

Ich möchte C:/test nach C:/test2 kopieren, so dass das Ergebnis C:/test2/test

ist. Alles, was ich bisher gefunden habe, kopiert nur die in C:/test enthaltenen Dateien und Ordner nach C:/test2, lässt aber das übergeordnete Verzeichnis aus.

Antworten (10)

52
52
52
2010-11-01 21:52:22 +0000

Versuchen Sie die Verwendung von XCOPY mit dem Schalter /E. Weitere Informationen hier .

Auf diese Informationen musste ich seit **_Jahren nicht mehr von meinem Gehirn aus zugreifen!

UPDATE

Die Dokumentation sagt, dass sie alle Dateien und Unterverzeichnisse aus dem Quellverzeichnis kopiert (was bedeutet, dass das Elternverzeichnis nicht erstellt wird), so dass Sie zuerst test in C:\test2 erstellen und dann XCOPY verwenden müssten.

21
21
21
2015-11-22 21:23:05 +0000

Verwenden Sie ROBOCOPY, wenn Sie Backup-Skripte erstellen. xcopy wurde veraltet und wird wahrscheinlich in naher Zukunft nicht mehr verwendet werden. robocopy kann alles, was xcopy kann. Es ist auch flexibler und zuverlässiger. Das Erstellen von Skripten mit robocopy macht sie zukunftssicher.


  1. Verwenden Sie robocopy zum einfachen Kopieren von Ordnern. Der Befehl robocopy ersetzt den Befehl xcopy. Er kann schnell ganze Ordner kopieren, ohne dass Sie sich um die Definition des Inhalts kümmern müssen. Um beispielsweise den gesamten Inhalt des Verzeichnisses C:\tools in den neuen Ordner D:\backup\tools zu kopieren, geben Sie Folgendes ein:

  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. Am Zielort wird dann alles gelöscht, was in der Quelle nicht vorhanden ist. Dadurch wird sichergestellt, dass Ihr Backup nur die neuesten Versionen Ihrer Dateien enthält. Um zum Beispiel C:\Benutzer\Meine Dokumente auf D:\Sicherung\Meine Dokumente zu spiegeln, geben Sie Folgendes ein:[4]

  3. Aktivieren Sie den Neustart. Möglicherweise möchten Sie die Möglichkeit vorsehen, den Prozess neu zu starten, falls die Verbindung während des Kopierens unterbrochen wird.

  4. Protokollieren Sie den Kopiervorgang. robocopy bietet Ihnen die Möglichkeit, eine Protokolldatei zu erstellen. Dies kann Ihnen helfen, Probleme zu lokalisieren oder ein Archiv dessen zu erstellen, was kopiert wurde.

8
8
8
2010-11-02 03:09:24 +0000

Ich empfehle robocopy gegenüber xcopy , da es viel mehr Optionen bietet, einschließlich der Beibehaltung von Zeitstempeln, was ich für wesentlich halte.

Robocopy muss unter XP/2003 hinzugefügt werden, ist aber ab Vista Standard.

Ich benutze eigentlich normalerweise xxcopy , aber die 64-Bit-Version ist nicht kostenlos.

5
5
5
2012-06-22 06:40:49 +0000
XCOPY SourceDrive: DestinationDrive: /S /E

Zum Beispiel, wenn Sie die Daten des Laufwerks E: über die Befehlszeile oder aus der xboot-Befehlsumgebung auf das Laufwerk H: (externe Festplatte) kopieren müssen.

xboot:\>XCOPY E:\ "H:\BackupFolder\" /S /E
3
3
3
2016-04-29 18:29:05 +0000

Wenn die ursprüngliche Frage das ist, worauf ich eine Antwort gesucht habe, dann habe ich, und offensichtlich niemand oben, eine klare Lösung gefunden.

Was ich suche, ist, das Testverzeichnis in das test2-Verzeichnis zu kopieren, ohne es erneut eingeben zu müssen. So etwas wie

xcopy /isvy c:\test d:\test2

, wobei d:\test2\test vor der Kopie nicht existiert, aber danach. Dies würde das zweite Eintippen von test im Zielpfad ersparen. Der obige Befehl kopiert alle Dateien und Verzeichnisse nach test2, erstellt aber nicht das Verzeichnis test.

xcopy /isvy c:\test d:\test2\test

ist bisher wirklich die einzige Möglichkeit, die ich gefunden habe, um diese Arbeit zu erledigen. Auch hier gibt es bei Tippfehlern keine Garantie, dass Quell- und Zielverzeichnis übereinstimmen.

Eine Alternative, um dies zu korrigieren, ist

set mydir=test&&xcopy /isvy c:\%mydir% c:\test2\%mydir%

Dies setzt das Zielverzeichnis in die Variable mydir und verwendet dann diese Variable sowohl im Quell- als auch im Zielpfad. Wenn Sie die Variable falsch eingeben, erhalten Sie entweder einen Fehler, oder das Zielverzeichnis hat wahrscheinlich % am Anfang und am Ende.

Es ist länger zu tippen, aber die Wahrscheinlichkeit, dass Sie die falschen Namen erhalten, ist geringer. Sie werden auffallen.

1
1
1
2016-08-18 22:26:31 +0000
xcopy SWITCHES SOURCE DESTINATION

Wo SWITCHES sein kann:

  • Um die gesamte Verzeichnisstruktur zu kopieren:

  • Um Dateien im Zielordner zu überschreiben (für den Fall, dass der Zielordner bereits existiert):

  • Um mit ACL+Attribut zu überschreiben und auch zu kopieren:

Für Ihren Fall am besten geeignet:

xcopy /hievry C:\test C:\test2\test

0
0
0
2017-07-24 12:06:12 +0000

Ich hatte eine ähnliche Situation, in der ich eine Reihe von Ordnern einschließlich der Ordnernamen an einen Zielspeicherort kopieren mußte, und hoffte, daß diese mit Antwort markierte Frage helfen würde, aber das tut sie wirklich nicht.

Erstens gibt es definitiv Gelegenheiten, bei denen man diese Fähigkeit benötigt, und ich bin auf eine gestoßen, als ich Ordner aus C:\Windows\Assembly\GAC_MSIL kopieren mußte. Windows Explorer weigert sich, diesen Ordner anzuzeigen, also müssen Sie eine Eingabeaufforderung verwenden.

Wenn Sie mit dem GAC-Ordner vertraut sind, wissen Sie, dass die Ordnernamen nicht trivial sind und leicht falsch zu verstehen sind, wenn Sie sich vertippen.

Das Verzeichnis vorher zu erstellen, ist also nicht wirklich eine Option - es sei denn, Sie verwenden ein Skript - was ich letztendlich auch verwendet habe, da dies die einzige wirkliche Lösung war.

Zuerst werden die Ordner, die Sie in eine temporäre Datei kopieren wollen, in eine Speicherauszugsdatei kopiert, dies geschieht normalerweise nach einem bestimmten Muster, z.B.

dir /B policy* > Folders.txt

Dann werden die Einträge im Speicherauszug in einer Schleife über die Einträge im Speicherauszug gelegt und zum Zielort kopiert. Xcopy kümmert sich um die Erstellung eines Ordners, wenn Sie das Ziel-Argument mit einem Backslash () abschließen

for /F "tokens=*" %%A in (Folders.txt) do xcopy /E /S %%A C:\Dest\%%A\

Setzen Sie diese beiden Befehle in eine Batch-Datei und führen Sie sie aus.

Nun, wenn nur xcopy oder robocopy dies eingebaut hat.

0
0
0
2018-12-07 17:07:00 +0000

Ich bin zu einer funktionellen alternativen Antwort auf Ihre Frage gekommen.

Erstens bewirkt die Verwendung von FORFILES mit dem Parameter /S, dass jedes Unterverzeichnis in C:\test erreicht wird.

Zweitens ist es mit dem Parameter /C möglich, eine Befehlskette mit nativen Variablen zu starten, die es ermöglicht, die identischen Verzeichnisse am Zielort zu erstellen und DANN die Dateien mit Hilfe von zwei bedingten Strukturen in diese zu kopieren.

Die erste bedingte Struktur @isdir==TRUE (Großbuchstaben verwenden), erlaubt es, Verzeichnisse nur von der Quelle zu erhalten und sie dann am Ziel mit MKDIR [path]\@relpath am Ende zu erstellen.

Schließlich stellt die zweite sicher, dass sie nur mit Dateien mit @isdir==FALSE arbeitet, und dann erledigt der COPY-Befehl einfach die Arbeit, indem er alle Dateien, die mit dem FORFILES-Befehl erreicht werden, mit [path]@relpath als Ziel erhält, um die Dateien in die soeben erstellten Verzeichnisse zu kopieren.

forfiles /s /c " cmd /c ( if @isdir==TRUE mkdir C:\test\@relpath ) && ( if @isdir==FALSE copy @file C:\test2\@relpath)"

Hoffnung, die allen hier hilft.

0
0
0
2018-05-15 05:24:03 +0000

XCOPY QuellLaufwerk: Ziellaufwerk: /S /E

-2
-2
-2
2010-11-02 05:24:21 +0000

Dies wird das von der GUI aus tun, ich weiß nicht, wie sie das machen.

“…kleines Programm erlaubt Ihnen die Auswahl von "von Verzeichnis” und “in Verzeichnis”, und es wird NUR die Verzeichnisstruktur kopieren.“ http://www.rjlsoftware.com/software/utility/treecopy/