Ich schreibe ein allgemeines Dateisicherungsprogramm. Es durchsucht das Laufwerk nach Dateien, die einer Reihe von Typen entsprechen, und schreibt sie dann in einen Ordner auf dem Desktop. Ich habe es unter xcopy
Windows XP geschrieben, aber als ich erfuhr, dass xcopy
es zugunsten von robocopy
Vista und neueren Betriebssystemen veraltet war , entschied ich mich, auf das nicht veraltete Betriebssystem zu wechseln, um die Kompatibilität aufrechtzuerhalten copy
.
Hier fangen die Probleme an. Ich versuche, die Kopierroutine zu reparieren. Ich dachte, ich hätte alles geklärt, aber es kopiert nichts. Meine Ausgabe besteht aus null Dateien, die bei jeder Iteration kopiert werden.
Ursprünglicher Code mit xcopy
:
for /r %%a in (*.bmp *.dds *.gif *.jpg *.jpeg *.png *.psd *.pspimage *.tga *.thm *.tif *.tiff) do (
echo f | xcopy "%%a" "%HOMEDRIVE%%HOMEPATH%\Desktop\LDR\Images\Bitmap\%%~nxa" /q /y /g /c
)
Überarbeiteter (fehlerhafter) Code mit copy
:
for /r %%a in (*.bmp *.dds *.gif *.jpg *.jpeg *.png *.psd *.pspimage *.tga *.thm *.tif *.tiff) do (
copy "%%a" "%HOMEDRIVE%%HOMEPATH%\Desktop\LDR\Images\Bitmap\%%~nxa" /d /y /z
)
Ausgabe:
The system cannot find the path specified.
0 files copied.
Ich weiß, dass es so aussieht, als ob jeder eins benutzt xcopy
oder robocopy
aber kann jemand helfen copy
?
Hinweis: Ich verwende Batch, um es sehr übersichtlich und über die Befehlszeile zugänglich zu halten.
quelle
@for
und hier ein @ setzendo @(
, das alle Befehle auflistet, und Sie können sehen, was auch immer ein Fehler ist. Mir ist auch aufgefallen, dass in Ihrem Kopierbefehl doppelte Anführungszeichen fehlen. Sie hatten sie in Ihrem xcopy-BefehlD:\>(copy "D:\Program Files\Winamp\Plugins\avs\whacko6-07.bmp" "C:\Documents and Settings\,,,,\Desktop\LDR\Images\Bitmap\whacko6-07.bmp" /d /y /z ) The system cannot find the path specified. 0 file(s) copied.
Eine Probe auf einer Probefahrt D. Die Ergebnisse waren alle gleich.copy
keine Dateipfade erstellt, sodass das Kopieren in einen Pfad,xcopy
der für mich erstellt worden wäre, fehlgeschlagen ist . Ich muss meine Verzeichnisse vorab erstellen, denke ich.Antworten:
Lösung endlich gefunden!
Erstellt anscheinend
xcopy
Verzeichnisse, wenn sie nicht angegeben sind. Ich hatte den\LDR\Images\Bitmap
Dateipfad noch nicht angelegt.copy
weiß nicht, wie man Ordner erstellt, deshalb muss ich sie vorher generieren, was ein wenig ärgerlich ist, weilxcopy
damit keine Ordner erstellt würden, wenn keine Dateien darin abgelegt werden müssten. Wenncopy
ich Ordner erstelle, gehen wir davon aus, dass sie gefüllt sind.Danke für die Hilfe. FOR THE RECORD: Erstellt
copy
keine nicht vorhandenen Dateipfade.xcopy
tut!UPDATE: Meine endgültige Lösung. Läuft wie ein Champion.
quelle