Kopieren Sie die Namen von Dateien richtig mit XCOPY

Kopieren Sie die Namen von Dateien richtig mit XCOPY

.cppIch habe ein Batch-Skript erstellt, das alle Dateien von einem von mir festgelegten Speicherort kopiert . Es kann die Dateien kopierenUndbehält die Ordnerstruktur bei, aber die kopierten Dateinamen werden nicht richtig erweitert. Ich habe auch eine ältere Version, die das kann, aber sie kopiert auchallesaus dem Zielordner in den neuen Ordner. Das Ziel der neuen Version ist es,nureinen bestimmten Dateityp kopieren.

Hier ist die Syntax, XCOPYdie Dateinamen richtig erweitert, aber den gesamten Ordnerinhalt kopiert:

ECHO D | XCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Projects" "Backup\Projects" /S /Q /N

Hier ist die neue Syntax, bei der die Dateinamen kopierter Dateitypen nicht erweitert werden:

ECHO F | XCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Projects\*.cpp" "Backup\Projects\" /S /Q /N

Hier ist ein Beispiel für die abgekürzten/nicht erweiterten Dateinamen, die ich im Zielverzeichnis erhalte:

WRNM~1.CPP.

Ich weiß nicht, ob der Befehl „prompt override“( /S /Q /N)wirken sich darauf aus, aber ich muss die Eingabeaufforderungen aufgrund der schieren Anzahl der zu kopierenden Dateien von ihnen überschreiben lassen. Ich möchte auch darauf hinweisen, dass ich trotz des Kopierens von Dateien mit der neueren Syntax XCOPYdiese immer noch kopieren kann, selbst wenn ich das Ziel mithilfe des Schalters als Verzeichnis definiere D.

Antwort1

Ich habe die Lösung gefunden, die alle meine Anforderungen erfüllt, indem ich ROBOCOPYstattdessen Folgendes verwende:

ROBOCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Projects" "Backup\Projects" *.cpp /S

Sie können den Schalter anhängen /E, um bei Bedarf auch leere Ordner zu kopieren. Ich habe das schon einmal versucht, aber die Dateitypdefinition falsch platziert.

Weitere ROBOCOPYUnterlagen vonSS64:

https://ss64.com/nt/robocopy.html

Antwort2

xcopy in Microsoft-Dokumenten

Erstellt Kopien unter Verwendung der kurzen Datei- oder Verzeichnisnamen von NTFS. /n ist erforderlich, wenn Sie Dateien oder Verzeichnisse von einem NTFS-Volume auf ein FAT-Volume kopieren oder wenn die Benennungskonvention des FAT-Dateisystems (d. h. 8,3 Zeichen) für das Zieldateisystem erforderlich ist. Das Zieldateisystem kann FAT oder NTFS sein.

Ihre ältere Version von xcopy funktionierte nicht /nrichtig. Überprüfen Sie xcopy /?bei jeder Version, ob sich die Bedeutung der Option geändert hat.

verwandte Informationen