Buscar una archivo en diferentes carpetas

Mi tema es el siguiente, un determinado programa me crea un archivo con dentro de una carpeta. El tema que la única forma de ver que todo este correcto es verificar carpeta por carpeta si el archivo esta. Son 468 carpetas. Esta tarea la hago 2 o 3 veces por semana.

Cada carpeta tiene un nombre diferente, por ejemplo Rt-Pll, dentro de ella hay otra carpeta, con el nombre Send. Dentro de la carpeta Send es en donde se crea el archivo en cuestión.

La pregunta es saber como hacer alguna sentencia que revise carpeta por carpeta y luego me devuelva si el archivo Esta en la carpeta.

2 Respuestas

Respuesta

Lo más simple para hallar un archivo y conservar los datos de búsqueda, desde MS-DOS es:

Te posicionas dentro de la carpeta desde donde lanzaras la búsqueda y escribes:

Suponiendo que el arvhivo se llame "datos.txt"..

dir datos.txt /s >Coincidencias.txt

Ahora para hacerlo más "intrincado" podrías hacer un BATCH con lo siguiente..

@echo off
set /p unidad=Inidique la Unidad:
%unidad%
set /p carpeta=Indique la ruta de busqueda:
cd\%carpeta%
set /p archivo=Indique nombre del archivo a localizar:
dir %archivo% /s >Coincidencias.txt
Edit Coincidencias.txt

Te pedirá primero la unidad, luego el nombre de la carpeta desde donde inciará la búsqueda y luego el nombre del archivo a buscar, para lo cual podrás usar comodines.

Respuesta

No sé si, además de lo que te propone SysGen Argentina, necesitas controlar si realmente se han creado las 468 ocurrencias del archivo y además dentro de la carpeta Send tal como indicabas. Si así fuera te sugiero este BAT que podrías integrar en las sugerencias de SysGen:

@echo off
Setlocal EnableDelayedExpansion
set cuenta=0
del Coincidencias.txt
for /f "tokens=*" %%a in ('dir /b/s datos.txt^|find "Send\datos.txt"') do (
echo %%a >> Coincidencias.txt
set /a cuenta=!cuenta! + 1
)
if !cuenta! LSS 469 (
Echo Hay menos ocurrencias de las previstas para el archivo buscado
echo Revisar en Coincidencias.txt estas ocurrencias
)

Por supuesto el número 469 puede ponerse "a pelo" o aceptarse como un parámetro de la llamada (o solicitarlo como el resto de las "variables")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas