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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  extraer lineas txt y crear txt [batch]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: extraer lineas txt y crear txt [batch]  (Leído 15,061 veces)
presen

Desconectado Desconectado

Mensajes: 4


Ver Perfil
extraer lineas txt y crear txt [batch]
« en: 9 Noviembre 2009, 01:52 am »

Hola, soy principiante en bat, he buscado respuestas por el foro, pero no encuentro
la solucion a lo k quiero hacer
estoy intentando crear un script que haga lo siguiente:
ping a varias ips externas, guarde el resultado en un txt
y despues me copie las lineas que yo quiero en otros 2 txt. uno k se llame ok, donde ponga las k responden y otro txt llamado down donde ponga las k no respoden.

los dos primeros pasos los consigo, pero en el txt de down no encuentro la formula para que sea perfecto
ya que si una ipo no responde lo guardado es de la siguiente forma:

Haciendo ping a 82.26.13.48 con 32 bytes de datos:

Tiempo de espera agotado para esta solicitud.

Estad¡sticas de ping para 82.26.13.48:
Paquetes: enviados = 1, recibidos = 0, perdidos = 1
(100 perdidos),

y no consigo ninguna manera de copiar, por ejemplo la linea 1 y la 3, partiendo de la base de k no tiene por k ser ese el orden, ya k la anterior ip puede responder o no, luego el txt no tiene siempre la misma estructura.

Espero haberme explicado y k alguien k sepa me de un encaminamiento

Este el codigo k estoy utilizando para hacer el ping y k lo pase al 1er txt:

ALARMA.BAT

echo ================================================>> resultado.txt
echo =============== Fecha : %date% =============>> resultado.txt
echo =============== Hora : %time% =============>> resultado.txt
echo ================================================>> resultado.txt
for /F "tokens=*" %%a in (IPext.txt) do (
ping -n 1 %%a >> resultado.txt
echo ______________________________________________________________>> resultado.txt
)
call dns.bat


DNS.BAT
@echo off
echo ==============================================================>> ok.txt
echo ==================== Fecha : %date% ======================>> ok.txt
echo ==================== Hora : %time% ======================>> ok.txt
echo ==============================================================>> ok.txt
FINDSTR Respuesta resultado.txt >> ok.txt
echo ______________________________________________________________>> ok.txt
call down.bat

Este codigo me lista y guarda en ok.txt una salida k me vale:
Respuesta desde 82.26.13.48: bytes=32 tiempo=107ms TTL=246

DOWN.BAT
aki es donde tengo el problema ya k no se como tomar las referencias de la ip k me falla.
el codigo k tengo no me sirve, ya k no soy capaz de extraer la linea de la ip + la de Tiempo de espera agotado para esta solicitud.

Espero no haber sido demasiado farragoso

gracias


En línea

flony


Desconectado Desconectado

Mensajes: 584



Ver Perfil
Re: extraer lineas txt y crear txt [batch]
« Respuesta #1 en: 9 Noviembre 2009, 02:36 am »

para copiar una linea usando el edlin es
Citar
Copiar   [línea_inicio],[línea_fin],a_línea[,veces]C
un ejemplo
Código:
@echo off
(
echo 1,1,100,1c
echo e
) | edlin /b texto2.txt
y si queres la linea 2 cambia y pone
Código:
echo 2,2,100,1c
esto esta sacado del manual de leo guitierrez la pagina
Citar
... ;D funciona esta probado
che para q no te jodan pone los code en la casilla de insertar codigo arriba de las caritas xq si no te cierran la pregunta


« Última modificación: 9 Noviembre 2009, 02:45 am por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
presen

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: extraer lineas txt y crear txt [batch]
« Respuesta #2 en: 9 Noviembre 2009, 10:41 am »

Gracias por la respuesta. y por la aclaracion de donde poner el codigo, lo siento
ya Habia leido el manual de Leo Gutierrez
Pero esta respuesta es para el caso k sepas lo k hay escrito en el txt y conozcas la linea k kieres copiar, yo lo k quiero, a ver si me explico mejor, es localizar una linea k tenga el texto xxxxx y copiar esa linea y 3 por encima de ella, asi si la respuesta es la siguiente:
Código:
Haciendo ping a 80.24.34.171 con 32 bytes de datos: 

Tiempo de espera agotado para esta solicitud.

Estad¡sticas de ping para 80.34.33.171:
Paquetes: enviados = 1, recibidos = 0, perdidos = 1
(100 perdidos),
 
localizo la linea k contenga "agotado", asi se k hay un error de ping, la copio en un txt llamado down.txt
pero ahora me gustaria copiar 3 lineas arriba la de Haciendo ping.... para saber donde se ha producido el error. Mi problema es k no se k ip es la k me va a fallar, luego no se k lineas copiar, no hay un orden
Espero haberme explicado mejor.
Muchas gracias
En línea

flony


Desconectado Desconectado

Mensajes: 584



Ver Perfil
Re: extraer lineas txt y crear txt [batch]
« Respuesta #3 en: 9 Noviembre 2009, 11:18 am »

Citar
...yo tenia una duda parecida y mas o menos esto te puede servir....es un code largo pero con unas modificaciones t puede servir...y esta bien explicado...
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
presen

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: extraer lineas txt y crear txt [batch]
« Respuesta #4 en: 9 Noviembre 2009, 23:46 pm »

Gracias, creo k por ahi si. en cuanto lo tenga te lo enseño
Un saludo
En línea

<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Re: extraer lineas txt y crear txt [batch]
« Respuesta #5 en: 10 Noviembre 2009, 03:09 am »

Vé a ver si esto te sirve. Necesitas tener un archivo de texto (IPList.log) que contenga una IP o Host en cada línea. No importa cuántas líneas tenga; lo que cuenta es que haya una IP en cada una. A partir de ahí todo resulta bien.

Código
  1. @echo off
  2. cls
  3. set cont=0
  4. title Ping Maker [v0.1] By ^<N0ZI3(FB^>
  5. If exist "%~dp0IPList.log" (goto Read) else (goto Error)
  6.  
  7. :Read
  8. for /f "useback tokens=*" %%L in ("%~dp0IPList.log") do (
  9.     echo. & echo   Procesando %%L & echo.
  10.     set "host=%%L"
  11.     ping %%L >"%temp%\ping.log"
  12.     call:SaveLog1
  13. )
  14. If not defined host (
  15.     echo. & echo  ERROR: La lista de IP's est  vac¡a. & sleep 2
  16.     echo. & echo Cerrando...
  17.     sleep 5
  18.     exit /b
  19. )
  20. echo. & echo Terminado.
  21. del "%temp%\ping.log"
  22. pause>nul
  23.  
  24. :SaveLog1
  25. If [%errorlevel%] == [0] set "opFile=%~dp0ping_OK.log"
  26. If [%errorlevel%] == [1] set "opFile=%~dp0ping_Down.log"
  27. (echo   Resultados de %host% & echo.)>>"%opFile%"
  28. For /f "useback tokens=*" %%S in ("%temp%\ping.log") do (
  29.     set "line=%%S"
  30.     call:SaveLog2
  31. )
  32. If [%errorlevel%] == [0] (
  33.     echo -------------------------------------------------------------------------------
  34.     echo ------------------------------------------------------------------------------->>"%opFile%"
  35. )
  36. echo. >>"%opFile%"
  37. goto:eof
  38.  
  39. :SaveLog2
  40. If ["%line%"] neq [""] (
  41.     echo %line%
  42.     echo %line% >>"%opFile%"
  43. ) else (
  44.     echo -------------------------------------------------------------------------------
  45.     echo ------------------------------------------------------------------------------->>"%opFile%"
  46. )
  47. goto:eof
  48.  
  49. :Error
  50. echo. & echo  ERROR: No se encontr¢ la lista de IP's (IPList.log).
  51. echo  Debe crearla en el directorio actual y ejecutar
  52. echo  nuevamente la aplicaci¢n. & sleep 2
  53. echo. & echo  Cerrando...
  54. sleep 10
  55. exit /b
  56.  

Pruébalo y verás.. Avisa qué tal te va con él.

Saludos.

OJO: Acabo de hacerle un pequeño ajuste respecto al archivo que guardo en %temp%, por si habían copiado el código. Sería bueno que lo copien otra vez.
« Última modificación: 12 Noviembre 2009, 00:40 am por -=cym@n=- » En línea

flony


Desconectado Desconectado

Mensajes: 584



Ver Perfil
Re: extraer lineas txt y crear txt [batch]
« Respuesta #6 en: 10 Noviembre 2009, 04:31 am »

guau  :o ...eso estuvo de diez  ;-)...creo q eso es lo q pide...ya me pongo a verlo :huh:  :silbar:
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
presen

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: extraer lineas txt y crear txt [batch]
« Respuesta #7 en: 10 Noviembre 2009, 19:42 pm »

Impresionante!!!!!, eso es justo lo k necesitaba, pero en weno. gracias es PERFECT  ;-)
Te lo agradezco mucho -=cym@n=-
La verdad es k me hace un papelon a pesar de k no entiendo una gran parte del codigo
Tengo solo las noches para estudiar y ese nivel es demasiado complejo para mi.
 :o
estaba dandole vueltas al asunto, y andaba comiendome el coco, entre numeraciones de lineas y copia y pega en archivos, años luz de esto. AUN ASI, jeje, en cuanto me funcione la publico.... espero no tardar demasiado.

Sera la version muy muy muy cutre de esta.


Gracias de nuevo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda - Extraer un texto de un .txt [Batch]
Scripting
eXoRTH 4 5,848 Último mensaje 13 Noviembre 2011, 21:45 pm
por eXoRTH
(Solucionado) [Batch] Randomizar lineas en un txt? « 1 2 »
Scripting
Eleкtro 17 12,358 Último mensaje 31 Mayo 2014, 09:06 am
por Dsalomon
Ejecutar lineas de batch desde C++
Programación C/C++
kamykaze 5 7,464 Último mensaje 29 Abril 2013, 00:13 am
por daryo
[BATCH]limite en el tamaño de lineas
Scripting
z_ane_666 3 3,382 Último mensaje 4 Julio 2013, 22:23 pm
por zikotik
[Batch] Obtener ciertas lineas de un TXT
Scripting
noealmeida 0 2,065 Último mensaje 7 Abril 2015, 12:41 pm
por noealmeida
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines