Copie todos los archivos de una lista de ubicaciones de carpetas

Copie todos los archivos de una lista de ubicaciones de carpetas

Tengo una lista de ubicaciones de carpetas desde las que me gustaría copiar todos los archivos contenidos en esas ubicaciones. La lista de ubicaciones de carpetas se almacena en una línea separada dentro de un archivo de texto (.txt). Todos los archivos deben copiarse en la misma ubicación.

¿Cómo puedo completar este ejercicio usando esta lista de carpetas en combinación con una función de copia en el símbolo del sistema?

Respuesta1

Considerando un archivo con contenido similar que contiene una lista de directorios como:

c:
c:\users 
c:\anyotherfolder

xcopydentro de un forbucle hará el trabajo :)

for /f %a in (list.txt) do xcopy /e %a\* c:\destination_folder\

(copiando todo el árbol de directorios (debido a /e))


Debe agregar un extra %al nombre de la variable si desea conservarla y ejecutarla en un .batarchivo separado.

Respuesta2

Tomé el código de Elvins y lo desarrollé ligeramente para resolver el problema de la inclusión de espacios en las rutas y nombres de las carpetas.

El comando For Do ahora usa un archivo CSV para obtener las rutas de las carpetas, entonces era necesario incluir la "delims=,"opción dentro del comando For.

for /f "delims=," %a in (D:\Batch_Files\Test_Bench\Folders_List.csv) do copy "%a\*" D:\Batch_Files\Test_Bench\Paste_All_The_Files_Here

Los registros delimitados por comas permitieron For /facceder a las ubicaciones que contienen espacios, pero solo si el token %a\*está envuelto en " ".

información relacionada