Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: eXoRTH en 13 Noviembre 2011, 02:48 am



Título: Ayuda - Extraer un texto de un .txt [Batch]
Publicado por: eXoRTH en 13 Noviembre 2011, 02:48 am
Buenas noches.
Bueno, les cuento el problema que estoy teniendo.
Estoy haciendo un batch para bloquear páginas de internet desde el archivo HOSTS..
El .bat funciona perfecto pero le quise agregar una opción, la cual es que el usuario pueda desbloquear una página escribiendo el nombre de la misma..
Con la función Find /I /N me aparece el número de línea y el nombre de la pagina que quiero eliminar y lo guardo en un .txt
Pero me sale de la siguiente forma:

Código:

---------- C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS
[22]255.255.255.0       www.pagina.com

Yo solo quiero extraer el 22 que es el número de línea (para después poder eliminar la línea con el EDLIN) y no pude conseguirlo...
intente con un For tokens y nada...

Busqué en el foro, leí el post creado por Leo Gutiérrez y la verdad que me sirvió de mucho pero no puedo con esto.
¿Me ayudarían por favor?
Desde ya, muchas gracias.


Título: Re: Ayuda - Extraer un texto de un .txt [Batch]
Publicado por: leogtz en 13 Noviembre 2011, 03:32 am
Archivo:

Código:
---------- C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS
[22]255.255.255.0       www.pagina.com

Código
  1. @echo off
  2. for /f "delims=[ tokens=1" %%a in ('type "file.txt" ^| findstr /r "^\["') do (
  3. for /f "tokens=1 delims=]" %%b in ("%%a") do (
  4. echo Línea: %%b
  5. )
  6. )

Resultado:
Código:
C:\Users\leo\batch>code.cmd
LÝnea: 22

C:\Users\leo\batch>


Título: Re: Ayuda - Extraer un texto de un .txt [Batch]
Publicado por: eXoRTH en 13 Noviembre 2011, 06:31 am
Código:
set /p pgi=Escriba la Pagina que desea Desbloquear: 
echo.
echo.
type "%file%" | findstr /i "%pgi%$" >nul && (
cd.>"%file%.bak"
type "%file%" | findstr /i /v "%pgi%$">"%file%.bak"
del /f/q/a "%file%" >nul
ren "%file%.bak" "hosts" >nul

Lo pude solucionar de esa forma Leo.
¿Estaría bien así?
Muchas gracias por el code que pusiste, ahora si lo entendí perfecto.


Título: Re: Ayuda - Extraer un texto de un .txt [Batch]
Publicado por: leogtz en 13 Noviembre 2011, 07:58 am
Sí funciona está bien....

Solo asegurate que el usuario escriba algo en el set /p.


Título: Re: Ayuda - Extraer un texto de un .txt [Batch]
Publicado por: eXoRTH en 13 Noviembre 2011, 21:45 pm
es verdad, ahora termino el code para que tire error si no escribe nada.
Muchisimas gracias! :)