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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Buscar archivo. batch [Solucionado]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Buscar archivo. batch [Solucionado]  (Leído 7,351 veces)
Dany3j

Desconectado Desconectado

Mensajes: 142


Echo "Aprendiendo Batch."


Ver Perfil
Buscar archivo. batch [Solucionado]
« en: 27 Julio 2011, 23:16 pm »

Hello. Como busco un archivo.? en el disco C: y abro la carpeta en la que esta o el archivo.?

Por ejemplo.

que al ejecutar el archivo bat me pida el nombre del archivo y al presionar enter lo busque en todo el disco y abra la carpeta. Y si no que me diga el archivo no existe.  :huh:


« Última modificación: 28 Julio 2011, 20:56 pm por Leo Gutiérrez. » En línea

"Pensando en Batch" XD
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Buscar archivo. batch
« Respuesta #1 en: 27 Julio 2011, 23:39 pm »

Esto me funciona bien:

Código
  1. @echo off
  2. :menu
  3. set /p "nombre=Nombre del archivo : "
  4. if not defined nombre (goto:menu)
  5.  
  6. pushd %homedrive%\
  7. for /f "tokens=*" %%_ in ('dir /b /s /a-d "%nombre%"') do (
  8. call:show "%%_"
  9. exit /b 0
  10. )
  11. :show
  12. echo Archivo encontrado en : %~dp1
  13. explorer %~dp1
  14. goto:eof

Ó así mejor:

Código
  1. @echo off
  2. :menu
  3. set /p "nombre=Nombre del archivo : "
  4. if not defined nombre (goto:menu)
  5.  
  6. pushd %homedrive%\
  7. for /f "tokens=*" %%_ in ('dir /b /s /a-d "%nombre%"') do (
  8. call:show "%%_"
  9. exit /b 0
  10. )
  11. :show
  12. echo Archivo encontrado en : %~dp1
  13. explorer /select,%~dpnx1
  14. goto:eof

En el segundo código hice una actualización a la línea del explorer

Código
  1. @echo off
  2. :menu
  3. set /p "nombre=Nombre del archivo : "
  4. if not defined nombre (goto:menu)
  5. pushd %homedrive%\
  6. for /r %%_ in (*) do if "%%~nx_"=="%nombre%" explorer /select,"%%~dpnx_


« Última modificación: 27 Julio 2011, 23:50 pm por Leo Gutiérrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Buscar archivo. batch
« Respuesta #2 en: 27 Julio 2011, 23:50 pm »

Advertencia - mientras estabas leyendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

 >:(



fácil  :P

Código
  1. @echo off
  2.  
  3.  
  4. Rem By PiToLoKo
  5. Rem Visita: Foro.ElHacker.Net
  6.  
  7.  
  8.  
  9.  
  10.  
  11. :Select
  12. cls
  13.  
  14. echo ¨Que archivo quieres buscar?
  15.  
  16. Set /p FILE=
  17.  
  18. If not defined file (
  19. echo. Porfavor, introduce el nombre del archivo...
  20. Ping -n 3 localhost >nul
  21. Goto :Select
  22. )
  23.  
  24.  
  25.  
  26.  
  27.  
  28. :Search
  29.  
  30. cls
  31. echo Buscando "%FILE%" en el disco "%Systemdrive%"...
  32. Dir /B /S "%systemdrive%\%FILE%" >"%temp%\file.txt"
  33. If %Errorlevel% EQU 0 (
  34. cls
  35. echo Archivo encontrado:
  36. Type "%temp%\file.txt"
  37. For /F "Tokens=*" %%a in ('Type "%temp%\file.txt"') do (
  38. "explorer.exe" /select,"%%a"
  39.  )
  40. ) ELSE (
  41. cls
  42. echo No se encuentra el archivo "%FILE%"
  43. )
  44.  
  45.  
  46.  
  47.  
  48. echo Pulsa una tecla para volver al menu...
  49. Set File=
  50. Goto :Select
« Última modificación: 28 Julio 2011, 00:01 am por pitoloko » En línea

No he vuelto, solo estoy de paso.
Dany3j

Desconectado Desconectado

Mensajes: 142


Echo "Aprendiendo Batch."


Ver Perfil
Re: Buscar archivo. batch
« Respuesta #3 en: 27 Julio 2011, 23:52 pm »

Leo que funcion tiene goto:eof  :o

He utilizado tu codigo pitoloko. pero no me esta abriendo el archivo file.txt en el que esta guardando lo encontrado solo me abre la ruta donde esta el archivo buscado
« Última modificación: 27 Julio 2011, 23:59 pm por dany3j » En línea

"Pensando en Batch" XD
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Buscar archivo. batch
« Respuesta #4 en: 27 Julio 2011, 23:56 pm »

que funcion tiene goto:eof  :o

Es una etiqueta para terminar la función del proceso.

Primero se llama a la función, con "CALL", y el call al llegar a la etiqueta "Goto:EOF", vuelve a donde la llamaron, osea, adentro del for, en vez de seguir código hacia abajo...

Seguro que Leo lo explica mucho mejor, pero asi tienes 2 respuestas ale xD
En línea

No he vuelto, solo estoy de paso.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Buscar archivo. batch
« Respuesta #5 en: 28 Julio 2011, 00:00 am »

eof es una etiqueta "especial", significa "END of FILE" y sirve para salir de un ámbito, yo lo utilizo para salir de un "ámbito de etiqueta" y así volver a donde fue llamada la función, también sirve para salir del archivo.

Ejemplo:

Código
  1. @echo off
  2. rem Supongamos que quiero llamar a la etiqueta "hola" y quiero que regrese!, no que se siga con las demás etiquetas:
  3. call:hola
  4. echo Bye
  5.  
  6. :hola
  7. echo Hola mundo!
  8.  
  9. :adios
  10. echo Adios!
  11.  

Y la salida del batch da:

Citar
C:\Users\leo>code.cmd
Hola mundo!
Adios!
Bye
Hola mundo!
Adios!

C:\Users\leo>

No pasa lo que yo quiero, pero si agrego goto:eof a las etiquetas:

Citar
C:\Users\leo>code.cmd
Hola mundo!
Bye

C:\Users\leo>

Ahora sí pasa lo que quiero, porque se llama a :hola, y luego regresa a donde fue llamado, y luego sale por el goto:eof después del call.

Saludos.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Buscar archivo. batch
« Respuesta #6 en: 28 Julio 2011, 00:01 am »

He utilizado tu codigo pitoloko. pero no me esta abriendo el archivo file.txt en el que esta guardando lo encontrado solo me abre la ruta donde esta el archivo buscado

Tu pediste qu abriera la carpeta, no el archivo, checa tu primer mensaje.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Buscar archivo. batch
« Respuesta #7 en: 28 Julio 2011, 00:04 am »

Tu pediste qu abriera la carpeta, no el archivo, checa tu primer mensaje.

eso, eso!  :¬¬

aunque si con "abrir" te refieres a "mostrar" el "file.txt" con el comando type, entonces si, me habia comido unas comillas, a mi me funcionaba porque tengo el nombre sin espacios,pero tu pc no se, ya está arreglado.

saludosss


PD: mi script es parecido al de Leo, algo más simple y también funciona, pero no es mejor!! el de leo no necesita guardar en un archivo, usa %~dp1, está más elaborado. si se me hubiera ocurrido a mi, casi parecería un plagio jaja

un saludo!
« Última modificación: 28 Julio 2011, 00:10 am por pitoloko » En línea

No he vuelto, solo estoy de paso.
Dany3j

Desconectado Desconectado

Mensajes: 142


Echo "Aprendiendo Batch."


Ver Perfil
Re: Buscar archivo. batch
« Respuesta #8 en: 28 Julio 2011, 00:08 am »

ok jajajaja lo que pasa que pitoloko le puso esa función y me pareció extraño que la tuviera, y no la ejecutara aunque si abre la ruta el file.txt no es necesario igual ya esta solucionado... mil GRacias de nuevo A los dos y por la explicacion del  goto:eof ya en varias partes lo había visto y no entendía

Damos por solucionado.  ;-)
En línea

"Pensando en Batch" XD
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Buscar archivo. batch [Solucionado]
« Respuesta #9 en: 29 Julio 2011, 07:44 am »

Bueno, aquí les dejo esta solución en Powershell, ya es tiempo de que vayamos volteando hacia él:

Código
  1. $file = Read-Host "Archivo a buscar : "
  2. $file.f
  3. Push-Location \
  4. foreach ($archivo in Get-ChildItem -path \users\leo\ -recurse -force)
  5. {
  6. if($archivo.name -eq "$file")
  7. {
  8. explorer $archivo.directory
  9. Pop-Location
  10. Exit-PSSession
  11. }
  12. }
  13.  
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Batch para buscar y borrar un archivo « 1 2 »
Scripting
analca3 18 22,369 Último mensaje 3 Noviembre 2009, 16:49 pm
por leogtz
[Solucionado][Batch] Find (buscar archivos por fecha) y tuberias
Scripting
Baranoides 2 15,124 Último mensaje 13 Enero 2012, 21:05 pm
por Baranoides
[BATCH] Como buscar y eliminar una linea de texto (Solucionado)
Scripting
RS_cool 6 15,375 Último mensaje 17 Abril 2012, 22:49 pm
por Eleкtro
[Solucionado] [BATCH] Buscar archivo en disco duro y eliminarlo.
Scripting
dimoca 1 2,581 Último mensaje 13 Abril 2014, 05:42 am
por dimoca
[BATCH] Buscar y ejecutar el archivo encontrado .bat
Scripting
rockhevy1000 5 4,602 Último mensaje 25 Octubre 2015, 07:11 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines