Buscar archivos en subcarpetas - batch

Iniciado por Dead0922, 13 Abril 2009, 13:51 PM

0 Miembros y 1 Visitante están viendo este tema.

Dead0922

Hola, soy nueva en esto de batch,
quisiera saber como hago lo siguiente:
me piden que ingrese el nombre de una carpeta y buscar un archivo de determinada extension dentro de la carpeta y subcarpetas, una vez q lo encuentra,copiarlo en otra carpeta...
lo de copiar sale bien, la búsqueda por ahora la hago con IF EXISTS.. pero solo me funciona para la carpeta mas no para las subcarpetas... entonces ahi está el problema.
Espero me ayuden.
Gracias!

leogtz

Ejemplo practico :
En las siguientes subcarpetas quiero comprobar que exista el archivo "file.txt" y asi copiarlo a la ruta C:\
pero se nos presenta un problema, que los archivos que si encuentre serán copiados con el nombre "c:\file.txt"
por lo que podrían ser reescritos, asi que nos ayudaremos de la variable RANDOM, para generar un numero aleatorio.

C:\Archivos>dir /b /s /ad
C:\Archivos\docs
C:\Archivos\docs\docs
C:\Archivos\docs\docs\docs

C:\Archivos>


Código (dos) [Seleccionar]
@echo off
:: Nos cambiamos a la ruta donde trabajaremos con los archivos.
cd /d "%homedrive%\archivos"
for /d /r %%_ in (*) do (
if exist "%%_\file.txt" (
call :copia "%%_\file.txt"
)
)
goto:eof
:copia
copy /y %1 "%homedrive%\file-%random:~0,2%.txt"
goto:eof


Si algunos archivos son encontrados te debe de dar en pantalla algo como :
        1 archivos copiados.
        1 archivos copiados.
        1 archivos copiados.
Press any key...

Ahora, checamos que los archivos hayan sido copiados :

C:\>dir /b file*
file-15.txt
file-46.txt
file-49.txt

C:\>


Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Dead0922

Muchas gracias... hice las modificaciones correspondientes para mi caso y me funciona de ptm! Un saludo!

leogtz

Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com