Autor
|
Tema: Script batch para ping (Leído 21,520 veces)
|
terrateck
Desconectado
Mensajes: 11
|
Hola a todos, Me gustaría que me ayudaseis a crear un batch para hacer ping y almacenar los resultados. Hasta ahora lo que he conseguido hacer es: @echo off setlocal for /F "delims=" %%i in ('ping google.es -t') do echo %date% %time% %%i 1>> output.txt Que al finalizar almacena los resultados en un documento TXT de salida. Pero lo que me gustaría conseguir es una utilidad que vaya haciendo un ping solo cada 5 o 10 seg y almacene los datos en un TXT únicamente cuando se pierda un paquete, con la hora y la fecha correspondiente y en ese mismo momento, sin tener que finalizar la ejecución. ¿Sería posible? Gracias.
|
|
|
En línea
|
|
|
|
Meine programmen
Desconectado
Mensajes: 121
|
Quizas esto te sirva: @ECHO OFF SET /P numero=¨Numero de segundos entre cada ping? :Ciclo SET prueba= ping localhost -n %numero% >nul (ping google.es echo %DATE% %TIME%)>1.txt FOR /F "tokens=*" %%A IN ('findstr /N " (0% perdidos)," 1.txt') DO (SET prueba=%%A) IF NOT "%prueba%"=="" (GOTO Ciclo) FOR /F "tokens=*" %%B IN ('TYPE 1.txt') DO (SET fecha=%%B) echo Paquete perdido echo Paquete perdido %fecha%>>"Paquetes perdidos.txt" GOTO Ciclo
|
|
|
En línea
|
REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!
|
|
|
terrateck
Desconectado
Mensajes: 11
|
Gracias por la ayuda, Meine programmen.
Lo he probado, pero tras introducir el numero de segundos y generarse el fichero 1.txt, me da el error de la sintaxis del comando no es correcta, y se cierra directamente.
¿Dónde puede estar el problema?
|
|
|
En línea
|
|
|
|
Meine programmen
Desconectado
Mensajes: 121
|
Creo (Y solo creo) que ya lo arregle @ECHO OFF setlocal enabledelayedexpansion SET /P numero=¨Numero de segundos entre cada ping? :Ciclo SET prueba= ping localhost -n %numero% >nul (ping google.es echo %DATE% %TIME%)>1.txt find /C /I "(0%% perdidos" "1.txt">2.txt FOR /F "tokens=*" %%A IN ('TYPE 2.txt') DO (SET prueba=!prueba!%%A) SET prueba=%prueba:---------- 1.TXT:=% SET prueba=%prueba: =% IF NOT "%prueba%"=="0" (GOTO Ciclo) FOR /F "tokens=*" %%B IN ('TYPE 1.txt') DO (SET fecha=%%B) echo Paquete perdido echo Paquete perdido %fecha%>>"Paquetes perdidos.txt" GOTO Ciclo Cuando no hay paquetes perdidos funciona como deberia.
|
|
« Última modificación: 18 Junio 2013, 23:53 pm por Meine programmen »
|
En línea
|
REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!
|
|
|
terrateck
Desconectado
Mensajes: 11
|
Hola, Ya lo he probado y funciona correctamente, es justo lo que quería. Gracias por la ayuda prestada.
Una cuestión: ¿por que en la instrucción find se busca "(0%% perdidos"? Me refiero al doble signo de porcentaje.
|
|
« Última modificación: 19 Junio 2013, 01:14 am por terrateck »
|
En línea
|
|
|
|
Royca3
|
Utiliso el Batch de Meine programmen pero no me guarda los resultados? es porque no hay problema y ningún paquete se pierde?
Saludos.
|
|
|
En línea
|
Homo erectus
|
|
|
engel lex
|
yo estuve haciendo algo similar XD termine haciendolo en C y al final luego de una semana tenia una masa de 300.000 lineas que no pude analizar XD
si consigo el exe te lo publico aqui
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Meine programmen
Desconectado
Mensajes: 121
|
Una cuestión: ¿por que en la instrucción find se busca "(0%% perdidos"? Me refiero al doble signo de porcentaje.
Desde cmd el comando si que llevaria solo un signo %, pero en un .bat tienes que poner dos para que funcione. Con el comando FOR pasa lo mismo. No se exactamente por qué, pero es así.
|
|
|
En línea
|
REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!
|
|
|
engel lex
|
aquí está https://mega.co.nz/#!udQhzbIJ!MWfyeSP4ttCjbNdZ3EL8xClyVlp01-c_yRi_4dEo-jA
el crea en la carpeta donde se ejecute un archivo llamado ping.txt con la info en el formato 2013-06-19 10:47AM. - Respuesta desde 201.248.76.20: bytes=32 tiempo=20ms TTL=59 si lo ejecutas se hará ping cada 3 segundos (o los segundos que establescas luego de "-t") si no especificas nada, hará ping cada 1 segundo (sumado a la espera del ping, me dio pereza corregir eso) si el ping falla puede decir que "tiempo de espera agotado" o simplemente dejarlo en blanco si el host lo da inaccesible... (tambien me dio pereza corregir eso) hace ping contra google.com por si a las dudas... el continua escribiendo el archivo donde lo dejó si lo cierras... espero te sea útil
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
terrateck
Desconectado
Mensajes: 11
|
Utiliso el Batch de Meine programmen pero no me guarda los resultados? es porque no hay problema y ningún paquete se pierde?
Saludos.
Efectivamente si no hay ningún problema con la conexión no te generará ningún resultado. Prueba a deshabilitar la conexión a la red mientras se ejecuta y así podrás comprobar que guarda los resultados en el fichero paquetesperdidos.txt. Desde cmd el comando si que llevaria solo un signo %, pero en un .bat tienes que poner dos para que funcione. Con el comando FOR pasa lo mismo. No se exactamente por qué, pero es así.
Es curioso, gracias por la información. aquí está https://mega.co.nz/#!udQhzbIJ!MWfyeSP4ttCjbNdZ3EL8xClyVlp01-c_yRi_4dEo-jA
el crea en la carpeta donde se ejecute un archivo llamado ping.txt con la info en el formato 2013-06-19 10:47AM. - Respuesta desde 201.248.76.20: bytes=32 tiempo=20ms TTL=59 si lo ejecutas se hará ping cada 3 segundos (o los segundos que establescas luego de "-t") si no especificas nada, hará ping cada 1 segundo (sumado a la espera del ping, me dio pereza corregir eso) si el ping falla puede decir que "tiempo de espera agotado" o simplemente dejarlo en blanco si el host lo da inaccesible... (tambien me dio pereza corregir eso) hace ping contra google.com por si a las dudas... el continua escribiendo el archivo donde lo dejó si lo cierras... espero te sea útil Gracias engelx. También había pensado hacerlo en C que lo controlo más pero al no ser demasiado complejo pensé que no merecía la pena y esto sería más rápido. De todas formas sería interesante ver como lo implementaste, ¿no tendrás el código por ahí para echarle un vistazo? Lo suyo es ajustar el tiempo entre pings a la calidad de la conexión, porque sino como dices se te va a llenar el logs de miles de entradas xD. Yo lo voy a usar porque actualmente tengo microcortes de conexión, y el log del cable router no es demasiado fiable. Estoy intentando que la operadora lo solucione y esto me es de gran ayuda para diagnosticarlo.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
script para insertar valores en un formulario (Batch)
Scripting
|
Slikp
|
7
|
9,045
|
19 Diciembre 2013, 23:03 pm
por Slikp
|
|
|
(AYUDA) No me funciona el comando PING dentro de un Script .BAT (BATCH)
Scripting
|
luchinialexis
|
2
|
3,582
|
9 Diciembre 2014, 18:42 pm
por Eleкtro
|
|
|
Script Para copiar archos Batch
« 1 2 »
Scripting
|
Guille270
|
10
|
6,654
|
2 Marzo 2015, 19:36 pm
por Guille270
|
|
|
Batch para guardar un registro de cada ping realizado con la hora en una linea
« 1 2 »
Scripting
|
Nucleorion
|
12
|
13,255
|
14 Mayo 2019, 10:58 am
por Nucleorion
|
|
|
codigo script para hacer ping en php
« 1 2 »
Scripting
|
condorito
|
15
|
23,891
|
2 Julio 2022, 14:55 pm
por Danielㅤ
|
|