it-swarm.com.de

Wie kopiere ich eine Datei in ein DOS-Verzeichnis und erstelle gegebenenfalls Verzeichnisse?

Wie kann ich eine Datei mit DOS-Befehlen in eine möglicherweise noch nicht vorhandene Verzeichnisstruktur kopieren? Ich muss in der Lage sein, die Erstellung des Verzeichnispfads zum Speicherort der Zieldatei zu erzwingen, wenn dieser Speicherort noch nicht vorhanden ist.

Zum Beispiel gibt es bereits eine file.txt an diesem Ort:

C:\file.txt

Und ich möchte es kopieren

C:\example\new\path\to\copy\of\file\file.txt

aber zu diesem Zeitpunkt

C:\example\

und alle Unterverzeichnisse können vorhanden sein oder noch nicht.

Grundsätzlich suche ich einen Befehl "Kopieren und ggf. Zielpfad anlegen". Was würden Sie empfehlen, um dies zu erreichen?

36
nodmonkey

Ja, das ist xcopy . So sieht es aus:

xcopy file.txt c:\example\new\path\to\copy\of\file\file.txt

XCOPY Infos unter

Möglicherweise möchten Sie auch ROBOCOPY im Resource Kit XP und Standard in Vista, Windows 7 und Server untersuchen 2008.

robocopy . c:\example\new\path\to\copy\of\file file.txt
29
b w

Ich habe versucht mit etwas wie:

xcopy file.txt c:\example\new\path\to\copy\of\file\file.txt

Aber es würde mich fragen, ob es eine Datei oder ein Verzeichnis war. Da ich das in einer Batch-Datei mit 40000 Dateien hatte, wäre es unpraktisch. Diese Lösung löst mein Problem nur teilweise: Sie erstellt die Verzeichnisstruktur, erfordert jedoch Benutzerinteraktion. Ich habe hier die Lösung für mein Problem gefunden:

https://stackoverflow.com/questions/4283312/batch-file-asks-for-file-or-folder

Welches ist im Grunde ein "*" am Ende der Zieldatei hinzuzufügen:

xcopy file.txt c:\example\new\path\to\copy\of\file\file.txt*

BEARBEITEN: Wie von @romkyns angegeben, kann es zu unerwünschten Ergebnissen kommen, wenn Sie Dateien mit demselben Namen und etwas anderem (wie 'file.txt.bak') haben. Im selben Thread, den Sie oben gepostet haben, leitet eine andere Lösung "echo f" an Ihren Befehl weiter:

echo f | xcopy file.txt c:\example\new\path\to\copy\of\file\file.txt

Wo Sie das "f" für jeden Buchstaben ersetzen sollten, den Ihr System für die Datei verwendet, falls Sie ihn in einer anderen Sprache verwenden.

17
msb

DOS, wow! Auf jeden Fall verwenden Sie den Befehl XCOPY .

3
Dustin Laine