¿Cómo puedo copiar todos los archivos con una determinada extensión en un solo directorio (sin la estructura del directorio)?

¿Cómo puedo copiar todos los archivos con una determinada extensión en un solo directorio (sin la estructura del directorio)?

He estado intentando copiar todos los archivos en los distintos subdirectorios que tienen una JPGextensión ubicada C:en un solo directorio en D:. No quiero conservar la estructura del directorio.

Esto es todo lo que he llegado:

for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures

Después de este punto, me preguntan si quiero sobrescribir D:\pictures. Si respondo yes, termino con un solo archivo y si respondo que no, no se copia ningún archivo.

También intenté agregar /yal final del comando, pero simplemente sobrescribe los archivos anteriores y deja solo el último.

Respuesta1

Esto debería funcionar:

for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures\

Explicación:

El comando copy "%f" D:\picturescopia el archivo %fen la ubicación D:\pictures, que es el archivo picturesen el directorio D:\.

Agregar un final \para asegurarse de que copyse trate picturescomo un directorio.

Si copia varios archivos en una única ubicación (por ejemplo, copy *.* D:\backup), copyse trata automáticamente backupcomo un directorio. Pero este no es el caso cuando copias un solo archivo.

Respuesta2

para /R c:\ %%1 in ("*.txt") haga @xcopy "%%1" d:\txttemp%%~p1 /e/i/s/q/h

este código se copiará sin sobrescribir y creará carpetas y subcarpetas

información relacionada