Buscador en batch

Iniciado por kraszic, 4 Septiembre 2007, 09:48 AM

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

kraszic

Bueno, ayer hice este codigo y me gustaria q me respondieran si esta bien o no, si hay cosas q son mejorables y sobretodo me interesa saber q esten bien puestas las variables de entorno ya q soy novato en eso.

Bueno, lo q hace el programa es meterse en el directorio raiz (C:) y mediante un for busca archivos indicando tu las letras por las q empieza y la extension. Tiene otra opcion q tambien busca carpetas en todo el disco duro.

Les dejo el codigo y me corrigen:

@echo off

title BUSCADOR

:menu
cls
echo --------------------------MENU----------------------------------
echo,
echo,
echo,
echo 1. Buscar archivos
echo 2. Buscar carpetas
echo,
echo 3. Salir
echo,
echo,
echo,
set /p sear=Selecciona un numero:
if %sear%==1 goto ar
if %sear%==2 goto ca
if %sear%==3 goto salir

:ar
cls
echo Selecciona el lugar para buscar el archivo:
echo,
echo,
echo 1. En todo el disco duro
echo 2. En mis documentos
echo 3. En archivos de programa
echo 4. Otra ruta
echo,
echo,
echo,
set /p arc=Selecciona un numero:
if %arc%==1 goto ar1
if %arc%==2 goto ar2
if %arc%==3 goto ar3
if %arc%==4 goto ar4

:ar1
cls
echo Estas buscando el archivo en %homedrive%
echo,
echo,
echo Introduce la primera o las dos primeras o las tres primeras o las 4 primeras (...) letras del archivo que quieres buscar.
echo,
echo,
set /p archiv=Introduce la(s) letras por las que empieza el archivo:
echo,
set /p extar=Introduce la extension del archivo (si no la conoces, introduce: *):
echo,
cd %homedrive%
FOR /R %%i in (%archiv%*.%extar%) DO echo %%i
echo,
echo,
echo,
echo Pulse cualquier tecla para volver al menu.
pause>nul
goto menu

:ar2
cls
echo Estas buscando el archivo en %homedrive%%homepath%\Mis documentos
echo,
echo,
echo Introduce la primera o las dos primeras o las tres primeras o las 4 primeras (...) letras del archivo que quieres buscar.
echo,
echo,
set /p archiv=Introduce la(s) letras por las que empieza el archivo:
echo,
set /p extar=Introduce la extension del archivo (si no la conoces, introduce: *):
echo,
cd %homedrive%%homepath%\Mis documentos
FOR /R %%i in (%archiv%*.%extar%) DO echo %%i
echo,
echo,
echo,
echo Pulse cualquier tecla para volver al menu.
pause>nul
goto menu

:ar3
cls
echo Estas buscando el archivo en %programfiles%
echo,
echo,
echo Introduce la primera o las dos primeras o las tres primeras o las 4 primeras (...) letras del archivo que quieres buscar.
echo,
echo,
set /p archiv=Introduce la(s) letras por las que empieza el archivo:
echo,
set /p extar=Introduce la extension del archivo (si no la conoces, introduce: *):
echo,
cd %programfiles%
FOR /R %%i in (%archiv%*.%extar%) DO echo %%i
echo,
echo,
echo,
echo Pulse cualquier tecla para volver al menu.
pause>nul
goto menu

:ar4
cls
set /p ruta=Introduce la ruta donde quieres buscar el archivo:
cls
echo Estas buscando el archivo en %ruta%
echo,
echo,
echo Introduce la primera o las dos primeras o las tres primeras o las 4 primeras (...) letras del archivo que quieres buscar.
echo,
echo,
set /p archiv=Introduce la(s) letras por las que empieza el archivo:
echo,
set /p extar=Introduce la extension del archivo (si no la conoces, introduce: *):
echo,
cd %ruta%
FOR /R %%i in (%archiv%*.%extar%) DO echo %%i
echo,
echo,
echo,
echo Pulse cualquier tecla para volver al menu.
pause>nul
goto menu

:ca
cls
echo Selecciona el lugar para buscar la carpeta:
echo,
echo,
echo 1. En todo el disco duro
echo 2. En mis documentos
echo 3. En archivos de programa
echo 4. Otra ruta
echo,
echo,
echo,
set /p car=Selecciona un numero:
if %car%==1 goto ca1
if %car%==2 goto ca2
if %car%==3 goto ca3
if %car%==4 goto ca4

:ca1
cls
echo Estas buscando la carpeta en %homedrive%
echo,
echo,
echo Introduce la primera o las dos primeras o las tres primeras o las 4 primeras (...) letras de la carpeta que quieres buscar.
echo,
echo,
set /p carpe=Introduce la(s) letras por las que empieza la carpeta:
echo,
cd %homedrive%\
FOR /R /D %%i in (%carpe%*) DO echo %%i
echo,
echo,
echo,
echo Pulse cualquier tecla para volver al menu.
pause>nul
goto menu

:ca2
cls
echo Estas buscando la carpeta en %homedrive%%homepath%\Mis documentos
echo,
echo,
echo Introduce la primera o las dos primeras o las tres primeras o las 4 primeras (...) letras de la carpeta que quieres buscar.
echo,
echo,
set /p carpe=Introduce la(s) letras por las que empieza la carpeta:
echo,
cd %homedrive%%homepath%\Mis documentos
FOR /R /D %%i in (%carpe%*) DO echo %%i
echo,
echo,
echo,
echo Pulse cualquier tecla para volver al menu.
pause>nul
goto menu

:ca3
cls
echo Estas buscando la carpeta en %programfiles%
echo,
echo,
echo Introduce la primera o las dos primeras o las tres primeras o las 4 primeras (...) letras de la carpeta que quieres buscar.
echo,
echo,
set /p carpe=Introduce la(s) letras por las que empieza la carpeta:
echo,
cd %programfiles%
FOR /R /D %%i in (%carpe%*) DO echo %%i
echo,
echo,
echo,
echo Pulse cualquier tecla para volver al menu.
pause>nul
goto menu

:ca4
cls
set /p ruta2=Introduce la ruta donde quieres buscar la carpeta:
cls
echo Estas buscando la carpeta en %ruta2%
echo,
echo,
echo Introduce la primera o las dos primeras o las tres primeras o las 4 primeras (...) letras de la carpeta que quieres buscar.
echo,
echo,
set /p carpe=Introduce la(s) letras por las que empieza la carpeta:
echo,
cd %ruta2%
FOR /R /D %%i in (%carpe%*) DO echo %%i
echo,
echo,
echo,
echo Pulse cualquier tecla para volver al menu.
pause>nul
goto menu

:salir
cls
exit


saludos

sirdarckcat

buscar palabras dentro de archivos
C:\> FINDSTR "palabra" c:\archivo.txt}
buscar archivos en directorios..
C:\> FINDSTR /S "nombrearchivo" c:\carpeta}
Saludos!!

kraszic

Cita de: Sirdarckcat en  4 Septiembre 2007, 22:08 PM
buscar palabras dentro de archivos
C:\> FINDSTR "palabra" c:\archivo.txt}
buscar archivos en directorios..
C:\> FINDSTR /S "nombrearchivo" c:\carpeta}
Saludos!!
suponia q con ese comando se podria hacer porq lei tu tutorial de programacion en batch avanzada (muy bueno por cierto) y vi los ejemplos del comando for y me inspire en eso para hacer el programa.
Habria alguna manera para q con el comando FINDSTR pudiera buscar palabras dentro de todos los archivos del disco duro? O el comando FINDSTR solo sirve para buscar palabras dentro de los archivos .txt???

saludos

PD: Estan bien puestas las variables de entorno??? En mi ordenador funcionan perfectamente pero funcionarian en cualquier ordenador con windows xp??