Ms-Dos - Buscar y copiar en DOS

 
Vista:

Buscar y copiar en DOS

Publicado por Demotelo (2 intervenciones) el 17/11/2019 23:58:48
Estimados

Tengo una duda, es posible generar un bat o por powershell lo siguiente

Tengo 1500 archivos xxx.pdf en un directorio y subdirectorios, la idea es realizar una búsqueda de todos esos archivos y luego copiarlos a otra ruta.

idealmente los que no encuentre me los deje en un LOG o algo para saber cuales no están.. sera posible?
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

Buscar y copiar en DOS

Publicado por Antoni Masana (811 intervenciones) el 18/11/2019 13:35:55
Hay algo que no entiendo.

¿Quieres un BAT para buscar todos los ficheros con extensión .PDF o todos todos los ficheros que se llaman xxx.pdf que no es lo mismo?
¿Que quiere decir los que no encuentre?

Seguramente hay más formas de buscar pero la más simple es:

1
DIR \*.PDF /S /B

Devuelve la lista de todos los PDF del disco con su ruta. Aquí ni faltan ni sobran, son los que hay.

Otro problema es copiarlos a otra ¿La otra ruta trendrá la misma estructura de directorios o sera un solo directorio? en el segundo caso cuando encuentre dos ficheros con el mismo nombre ¿Que hace?

Saludos.
\\//_
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

Buscar y copiar en DOS

Publicado por Demotelo (2 intervenciones) el 18/11/2019 14:15:19
Mira tengo un txt con una lista de archivos con números y nombres.

La idea es que busque esos archivos y nombre de archivos en las carpetas y luego copie solo eso ya filtrado a otra carpeta

Por ejemplo, hice pruebas con un script filtrando un Solo archivo archivo y lo copia perfecto, pero no me resulta realizarlo por varios archivos.
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
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

Buscar y copiar en DOS

Publicado por Antoni Masana (811 intervenciones) el 18/11/2019 17:40:08
Si te dejas la mitad de la explicación es difícil entender el conjunto, piensa que quien lee esto no sabe lo que tienes haces o quieres hacer.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
 
set Dir_Dest=X:\Directorio
set No_Existe=C:\Tmp\No_Existe.txt
 
DIR \*.PDF /S /B >C:\Tmp\Lista.tmp
 
FOR /F "tokens=*" %%a in (C:\Tmp\Fichero.txt  ) do Call :Copia "%%a"
FOR /F "tokens=*" %%a in (C:\Tmp\Resultado.tmp) do Copy "%%a" %Dir_Dest%
 
del C:\Tmp\Lista.tmp
del C:\Tmp\Resultado.tmp
goto :EOF
 
:Copia
    findstr /i %1 Lista.tmp >>C:\Tmp\Resultado.tmp 2>nul
    if %ErrorLevel% EQU 0 goto :EOF
 
    set Fich=%1
    set Fich=%Fich:~1,-1%
    echo %1 >>%No_Existe%
    goto :EOF

Te voy a explicar que hace o se supone que debe hacer porque no lo he probado. Pongo numero de linea y la explicación:

06 - Crea un fichero con todos los PDF del disco con su ruta.
08 - Lee el fichero Fichero.txt que tiene la lista de PDF a buscar, para cada linea leida llama al proceso Copia y le pasa el nombre entre comillas por si tiene espacios en el nombre.

Salto a la línea 16 para seguir la lógica del proceso:

16 - busca el nombre en la lista creada con el DIR y lo guarda en un temporal con la ruta si existe.
17 - Si existe finaliza
19 - Paso el parametro a un variable para quitar las comillas
20 - Quito comillas
21 - Lo guarda en un fichero de no encontrado.
22 - Finaliza y vuelve al FOR

Y seguimos

09 - Copia los ficheros encontrados.
11 - Borra temporal
12 - Borra temporal
13 - Finaliza

Si no funciona o no entiendes algo vuelve a escribirme.

Saludos.
\\//_
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