Título: problema findstr Publicado por: ramos_45 en 3 Octubre 2018, 16:37 pm Necesito buscar archivos en un directorio que contienen un texto metido a mano, para ello hago:
Código: echo off set /p nombre=Dime tu nombre: echo Hola %nombre%! Pero no me saca nada. Quiero que solo me diga que archivos contienen lo introducido en el directorio Título: Re: problema findstr Publicado por: **Aincrad** en 3 Octubre 2018, 17:07 pm No te estoy entendiendo muy bien, explícate. lo que entendí : osea tienes un directorio con varios .txt y quieres crear un bat que busque en todos esos .txt una palabra. es eso?
Título: Re: problema findstr Publicado por: ramos_45 en 3 Octubre 2018, 17:10 pm Eso es, y que me cree un archivo en el que diga "tienes la palabra que has tecleado en estos archivos"
Título: Re: problema findstr Publicado por: **Aincrad** en 3 Octubre 2018, 18:46 pm Termine, me tarde por que la ultima vez que hice algo así me lleve 104 lineas (https://foro.elhacker.net/scripting/el_signo-t474587.0.html) y de paso código mal optimizado .
Pero ahora soy mas cuidadoso . y optimizo muy bien mis script. El code Busca en todos los .txt la palabra que tu escribas. (Pon el bat en la carpeta donde tienes tus txt) o bueno lo modificas a tu gusto. Código
100% FUNCIONAL con palabras. y bien optimizado , pruebalo. Título: Re: problema findstr Publicado por: ramos_45 en 3 Octubre 2018, 20:43 pm Termine, me tarde por que la ultima vez que hice algo así me lleve 104 lineas (https://foro.elhacker.net/scripting/el_signo-t474587.0.html) y de paso código mal optimizado . Pero ahora soy mas cuidadoso . y optimizo muy bien mis script. El code Busca en todos los .txt la palabra que tu escribas. (Pon el bat en la carpeta donde tienes tus txt) o bueno lo modificas a tu gusto. Código
100% FUNCIONAL con palabras. y bien optimizado , pruebalo. funciona perfecto. he añadido "" a %file% porque en archivos con varias palabras de nombre fallaba. he intentado añadir set file=%~1 if not exist %file% goto :exit Echo Por Favor Espere... findstr /i %string% "%file%" if %errorlevel% == 0 echo Palabra %string% Encontrada en %file% >> lista.txt :exit type lista.txt pause exit >nul para que me muestre en la shell el archivo que genera antes de salir, pero deja de funcionar porque solo me registra 1 archivo. que le sucede? Título: Re: problema findstr Publicado por: **Aincrad** en 3 Octubre 2018, 21:15 pm Código
Título: Re: problema findstr Publicado por: ramos_45 en 3 Octubre 2018, 22:13 pm No veo la diferencia, no lo entiendo. Lo único que veo que tenía mal en foto editada que tenía :exit
Título: Re: problema findstr Publicado por: **Aincrad** en 3 Octubre 2018, 22:23 pm Solo tenias q dejar la Sub-rutina BS :
Código
De ultimo (osea al final de batch) y ya eso es todo. eso se debe por que no puse el : Código: GOTO :EOF Eso era todo. PD: no te puedo explicar mas por que ando un poco ocupado. vuelvo dentro de unas 3 horas bay. Título: Re: problema findstr Publicado por: Eleкtro en 3 Octubre 2018, 23:31 pm Existen multitud de aplicaciones comerciales/profesionales, como por ejemplo FileLocator Pro, software el cual recomiendo encarecidamente para buscar texto en todo tipo de archivos mediante filtros y expresiones regulares.
Pero si por cualquier motivo no quieres recurrir a ese tipo de aplicaciones y si en su lugar prefieres hacerlo mediante un lenguaje de scripting soportado por Windows, entonces Batch es la peor herramienta que existe a tu disposición, muy limitada e ineficiente en términos de rendimiento, sobre todo en la manipulación/lectura de archivos de texto, por eso es mucho mejor recurrir a lenguajes más óptimos como sería Visual Basic Script o Powershell para el siguiente ejemplo que he escrito... Script.ps1 Código
(https://i.imgur.com/lEWyE71.png) (https://i.imgur.com/JkZMKPA.png) De todas formas si quieres hacerlo en Batch, lo cual no recomiendo en absoluto, puedes guiarte por este ejemplo de aquí abajo o también los que ya te hayan mostrado previamente en los comentarios de arriba... Script.cmd Código Saludos. |