Ms-Dos - Copiar archivos desde un listado en txt

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 18 puestos en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Copiar archivos desde un listado en txt

Publicado por Luis (2 intervenciones) el 06/01/2020 18:38:54
Buenas. A ver si me se explicar. Tengo en un directorio con 2000 imagenes mas o menos.
En un archivo en txt tengo listadas esas imagenes en una columna y en otra columna un número de referencia del 1 al 4. (En realidad son 17 departamento pero para simplificar lo explico con 4)
Ahora lo que hago es cuatro archivos (Lista1.txt Lista2.txt Lista3.txt y Lista4.txt) donde meto el nombre de la imagen de cada referencia y así me copia de la carpeta principal la imagen a una carpeta especifica para cada departamento. y ejecuto este bat que me copia las fotos.

FOR /F %%M in (Lista1.txt) do copy D:\fotos\%%M.* D:\FOTOS\1
FOR /F %%M in (Lista2.txt) do copy D:\fotos\%%M.* D:\FOTOS\2
FOR /F %%M in (Lista3.txt) do copy D:\fotos\%%M.* D:\FOTOS\3
FOR /F %%M in (Lista4.txt) do copy D:\\fotos\%%M.* D:\FOTOS\4
Pause
exit

El tema es que preparar esos listados por separado me lleva un buen rato y quería automatizarlo.

El listado principal seria algo asi como esto

65656 1
54799 2
54546 3
65656 3
dewfff 4
fdwef 4

donde la primera columna seria el nombre del archivo y la segunda el departamento.

si alguien me echa una mano le estaría eternamente agradecido.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Copiar archivos desde un listado en txt

Publicado por Antoni Masana (811 intervenciones) el 07/01/2020 14:25:12
Usando como ejemplo el listado principal de tu post y llamándola lista.txt

1
2
3
C:\Tmp\MSDOS>type run.bat
@echo off
for /F "tokens=1,2" %%a in (Lista.txt) do @echo copy D:\Fotos\%%a D:\FOTOS\%%b

Y este es el resultado:

1
2
3
4
5
6
7
C:\Tmp\MSDOS>run
copy D:\Fotos\65656 D:\FOTOS\1
copy D:\Fotos\54799 D:\FOTOS\2
copy D:\Fotos\54546 D:\FOTOS\3
copy D:\Fotos\65656 D:\FOTOS\3
copy D:\Fotos\dewfff D:\FOTOS\4
copy D:\Fotos\fdwef D:\FOTOS\4

El @echo copy lo debes dejar como copy para que copie, esto es para probar la sintaxis y que hace lo que se espera que haga.

NOTA: Esto funciona SOLO si los nombres de los archivos no tienen espacios. Es decir el único espacio es el que separa el nombre del número.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 18 puestos en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Copiar archivos desde un listado en txt

Publicado por Luis (2 intervenciones) el 07/01/2020 19:17:07
Muchisimas gracias. Lo he adaptado a mis necesidades y funciona perfecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar