elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Crear un .bat para buscar archivos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear un .bat para buscar archivos  (Leído 11,568 veces)
eXtm

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Crear un .bat para buscar archivos
« en: 15 Febrero 2017, 10:13 am »

Necesito crear un .bat que :
Me pida escribir una palabra y este me busque archivos que se llamen así, pero con cualquier extension.

y me muestre las rutas.

Los problemas que tengo al hacer esto son dos
_________

Código
  1. @echo off
  2. echo ¿Que archivo quieres buscar?
  3. set /p file=
  4. If Exist "%file%" (echo hola)
  5.  
_________
Tal como esta si quisiese buscar un archivo tendria que poner "prue.txt" y yo necesito que no me pida poner la extension. Imagino que sera con un .* pero no se como ponerlo con la variable.
Otro problema seria el que me muestre la ruta. (Este comando iría donde esta el echo hola. Esto lo puse para ver si me funcionaba) y no se que comando es.

Lo he estado buscando por un rato y no encuentro la solución, le pregunte a mi profesora pero no me soluciono nada (como siempre   :xD) asi que os agradeceria que me echaseis un cable .


« Última modificación: 15 Febrero 2017, 12:33 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Crear un .bat para buscar archivos
« Respuesta #1 en: 15 Febrero 2017, 12:32 pm »

Hola.

Puedes hacerlo de la siguiente manera:
Código
  1. @Echo OFF & (CHCP 1252)1>NUL
  2.  
  3. Echo:¿Qué archivo quieres buscar?.
  4. Set /P "filename="
  5. CLS
  6.  
  7. :: Aquí puedes optar por interpretar el valor de "%filename%" como un nombre de archivo parcial, o un nombre completo.
  8.  
  9. Set "search=*%filename%*.*" & REM Partial Filename
  10. REM Set "search=%filename%.*" & REM Full Filename
  11.  
  12. For %%# In ("%search%") Do (
  13.    Echo "%%~f#"
  14. )
  15.  
  16. Exit /B 0

Asignando el término "setup" para la búsqueda, esto sería un resultado de ejecución aleatorio de una búsqueda por nombre parcial:
Código:
DSETUP.DLL
DSETUP16.DLL
DSETUP32.DLL
locSetup.exe
MCMsetup.exe
setup.exe

Y esto de una búsqueda por nombre completo:
Código:
setup.exe

Saludos!


« Última modificación: 15 Febrero 2017, 12:47 pm por Eleкtro » En línea



eXtm

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Crear un .bat para buscar archivos
« Respuesta #2 en: 16 Febrero 2017, 10:28 am »

Gracias por tomate tu tiempo para responder pero si no es mucha molestia podrias explicarme que significa"  & (CHCP 1252)1>NUL  " es la primera vez que lo uso y no entiendo su funcion.
« Última modificación: 21 Febrero 2017, 22:03 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Crear un .bat para buscar archivos
« Respuesta #3 en: 22 Febrero 2017, 05:02 am »

podrias explicarme que significa"  & (CHCP 1252)1>NUL  "

Hola.

El propósito de {n}>NUL sirve para redireccionar un stream especifico de un comando o proceso, donde {n} en este caso es "1", el buffer de salida (1 = STDOUT) y se redirecciona hacia "Nulo", es decir, nada, u oculto. Dicho de otra forma, 1>NUL sirve para ocultar el mensaje del comando. En otros casos podriamos usar 2>NUL para ocultar el mensaje de error (2 = STDERR), o 1>NUL 2>&1 para ocultar ambos, etc.



Sobre el comando CHPC, bueno...

Cuando desconozcas el propósito de un comando, siempre puedes ver la ayuda del comando en la consola escribiendo "/?" al final del nombre de dicho comando:

Código:
CHCP /?

Esto nos mostrará lo siguiente:
Cita de: CMD
Muestra o establece el número de la página de códigos activa.

CHCP [nnn]
  nnn   Especifica una página de códigos.

Escriba CHCP sin parámetro para mostrar el número de la página de códigos activa.

Y esto viene a decirnos, que el comando CHCP sirve para modificar el modo en el que la consola representa los caracteres en pantalla usando un código de páginas de Windows específico, o dicho de otra forma, un set de caracteres específico, en este caso CHCP 1252 corresponde a Windows Latin 1 (ANSI):





Te preguntarás por que he usado el comando CHCP si parece que en tu script no haga falta usarlo, y en principio es verdad, simplemente lo utilizo en todos mis scripts para conservar las buenas costumbres, puesto que la consola o CMD por defecto utiliza el código de página 850 y esto no representa correctamente los caracteres del Castellano.

Te mostraré un ejemplo breve para que comprendas la diferencia:

Script.cmd
Código
  1. @Echo OFF
  2.  
  3. (CHCP 1252)1>NUL
  4. Echo áéíóú
  5.  
  6. (CHCP 850)1>NUL
  7. Echo áéíóú
  8.  
  9. Pause&Exit

Resultado de ejecución:
Citar
áéíóú
ßÚݾ·
Presione una tecla para continuar . . .
« Última modificación: 22 Febrero 2017, 05:18 am por Eleкtro » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] [vbs] ¿Un script para buscar archivos de cero bytes?
Scripting
SuperDraco 0 4,715 Último mensaje 13 Mayo 2011, 20:09 pm
por SuperDraco
adn de archivos de video para buscar duplicados
Multimedia
Rinformatic 5 6,045 Último mensaje 8 Marzo 2014, 20:29 pm
por engel lex
Ayuda para buscar cadenas en Archivos!!!
Programación C/C++
ThronerAXE 0 1,643 Último mensaje 29 Junio 2014, 03:49 am
por ThronerAXE
Crear un bat para crear archivos txt
Scripting
kakamoko 7 12,343 Último mensaje 30 Abril 2016, 13:39 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines