Ich habe versucht, alle Dateien in den verschiedenen Unterverzeichnissen, die die JPG
Erweiterung haben, C:
in ein einzelnes Verzeichnis auf zu kopieren D:
. Ich möchte die Verzeichnisstruktur nicht beibehalten.
So weit bin ich gekommen:
for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures
Danach werde ich gefragt, ob ich überschreiben möchte D:\pictures
. Wenn ich mit antworte yes
, bleibt mir nur eine Datei, und wenn ich mit Nein antworte, werden keine Dateien kopiert.
Ich habe auch versucht, es /y
am Ende des Befehls hinzuzufügen, aber dadurch werden einfach die vorhergehenden Dateien überschrieben und nur die letzte bleibt übrig.
Antwort1
Das sollte funktionieren:
for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures\
Erläuterung:
Der Befehl copy "%f" D:\pictures
kopiert die Datei %f
an den Speicherort D:\pictures
, d. h. die Datei pictures
im Verzeichnis D:\
.
Durch Hinzufügen eines Nachspanns \
wird sichergestellt, dass es sich um ein Verzeichnis copy
handelt pictures
.
Wenn Sie mehrere Dateien an einen einzigen Ort kopieren (z. B. copy *.* D:\backup
), copy
wird automatisch backup
als Verzeichnis behandelt. Dies ist jedoch nicht der Fall, wenn Sie eine einzelne Datei kopieren.
Antwort2
für /R c:\ %%1 in ("*.txt") mache @xcopy "%%1" d:\txttemp%%~p1 /e/i/s/q/h
Dieser Code kopiert ohne zu überschreiben und erstellt Ordner und Unterordner