Guardar salida de ping en un archivo de texto

16

A menudo tengo que hacer ping a los servidores para conocer el estado de conectividad. ¿Hay alguna manera de guardar los resultados de ping (salida) en un archivo de texto para que pueda guardar los resultados de ping de todo el día en un archivo de texto.

Estoy usando Windows XP SP3.

Ejemplo de ping:

ping 192.168.1.1 -t 

(using windows' ping)

o

ping 192.168.1.1

(using cygwin)
Abel
fuente

Respuestas:

17

Utilice la redirección, por ejemplo:

ping 192.168.1.1 -t > filename.txt

Esto redirigirá toda la salida (estándar) del programa filename.txt, que se creará si no existe y se sobrescribirá si lo hace.

Puede usar en >>lugar de >redirigir la salida a un archivo y agregar los resultados al final del archivo, en lugar de sobrescribir (gracias a @Jane T por el recordatorio) .

Tenga en cuenta que no recibirá la salida normal en pantalla si hace esto.

Actualización en respuesta al comentario

Para retrasar entre pings y registrar el tiempo de cada uno, puede hacer algunos scripts.

Aquí hay un rápido archivo por lotes de Windows que he creado. Imprime el tiempo, hace ping a Google, luego espera 3 segundos antes de repetirse. Estoy no un experto en archivo por lotes por lo que si cualquier persona manchas algún problema por favor, marca para arriba! Y esta probablemente no sea la "mejor" forma de lograr lo que está buscando, eso podría hacer una pregunta separada realmente.

@ECHO OFF

:LOOPSTART

time /T
ping www.google.com -n 4
sleep -m 3000

GOTO LOOPSTART

Guarde esto en un .batarchivo en algún lugar, edite el objetivo de ping y demore el tiempo que lo necesite, luego ejecute la .batredirección de uso para bombear la salida de todo a un archivo.

Tenga en cuenta que este archivo por lotes nunca termina , pero puede terminarse con Ctrl+ Cy luego, Ysi se ejecuta desde cmd. ( Debe presionar Y porque le pregunta si desea detener el archivo por lotes, ¡aunque no pueda ver la pregunta porque ha redirigido la salida!)

DMA57361
fuente
¡Gracias! funciona bien, ¿puedo mostrar la hora actual junto con cada ping o puedo cambiar la duración entre dos pings
Abel
2
Tendría que hacer algunos scripts para esto, ping no podrá hacerlo por usted.
Azz
Azz me superó, para eso necesitaría cambiar a pingsí mismo para generar algo diferente, o hacer un esfuerzo interesante de secuencias de comandos para, por ejemplo, generar una marca de tiempo, ping, esperar 10 segundos, repetir.
DMA57361
Me alegra saber que se puede hacer. esperando más ¿Tiene algo que ver las secuencias de comandos de Windows
Abel
2
"para poder guardar los resultados de ping de todo el día en un archivo de texto" Deberá usar >> para agregar datos al archivo de salida.
Jane T
3

Puedes usar:

> ping 192.168.1.1 -t > ping-results
Pablo Santa Cruz
fuente
2

Si está utilizando el símbolo del sistema, simplemente rediríjalo a un archivo de texto con este formato

ping 192.168.1.1 > ping.txt

Eso lo hará.

danbo
fuente
1

:: PIng ISP cada 1 segundos y escriba la fecha, hora y resultado en el archivo de texto

@ECHO OFF
:LOOPSTART
date /T >>Pingtest.log
time /T >>Pingtest.log
ping 8.8.8.8 -n 1 >>PingTest.log
sleep -m 1000
GOTO LOOPSTART
Dan desesperado
fuente
1

Escribí el script que hace ping a google.com cada 5 segundos y registrando los resultados con la hora actual. Aquí puede encontrar la salida a las variables "commandLineStr" (con índices)

@echo off

:LOOPSTART

echo %DATE:~0% %TIME:~0,8% >> Pingtest.log

SETLOCAL ENABLEDELAYEDEXPANSION
SET scriptCount=1
FOR /F "tokens=* USEBACKQ" %%F IN (`ping google.com -n 1`) DO (
  SET commandLineStr!scriptCount!=%%F
  SET /a scriptCount=!scriptCount!+1
)
@ECHO %commandLineStr1% >> PingTest.log
@ECHO %commandLineStr2% >> PingTest.log
ENDLOCAL

timeout 5 > nul

GOTO LOOPSTART
Ja Vy
fuente
0

Además, si desea ver los resultados del ping en la pantalla, puede usar este código

@ECHO OFF
:LOOPSTART
date /T >>Pingtest.log
time /T >>Pingtest.log
REM this line show you the ping results in display
ping 8.8.8.8 -n 1 

REM this line print the ping results in the log file
ping 8.8.8.8 -n 10 >>PingTest.log
sleep -m 1000
GOTO LOOPSTART
JorgeM
fuente