Salvar saída de ping em um arquivo de texto

16

Geralmente, tenho que executar ping nos servidores para obter o status de conectividade. Existe uma maneira de salvar os resultados do ping (saída) em um arquivo de texto para que eu possa salvar os resultados do dia inteiro em um arquivo de texto.

Estou usando o Windows XP SP3.

Exemplo de ping:

ping 192.168.1.1 -t 

(using windows' ping)

ou

ping 192.168.1.1

(using cygwin)
abel
fonte

Respostas:

17

Use o redirecionamento, por exemplo:

ping 192.168.1.1 -t > filename.txt

Isso redirecionará toda a saída (padrão) do programa para a filename.txtqual será criada se não existir e substituída se existir.

Você pode usar, em >>vez de >redirecionar a saída para um arquivo e anexar os resultados ao final do arquivo, em vez de sobrescrever (agradeça a @Jane T pelo lembrete) .

Observe que você não receberá a saída normal na tela se fizer isso.

Atualização em resposta ao comentário

Para atrasar entre pings e registrar o tempo de cada um, você pode executar alguns scripts.

Aqui está um rápido arquivo em lote do Windows que eu juntei. Ele imprime o tempo, envia um ping para o Google e aguarda 3 segundos antes de se repetir. Como não sou especialista em arquivos em lote, se alguém detectar algum problema, sinalize-o! E esta provavelmente não é a "melhor" maneira de conseguir o que você procura - isso pode realmente fazer uma pergunta separada.

@ECHO OFF

:LOOPSTART

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

GOTO LOOPSTART

Salve isso em um .batarquivo em algum lugar, edite o destino do ping e adie o tempo que precisar, depois execute o .batredirecionamento usando para bombear a saída da coisa toda para um arquivo.

Observe que esse arquivo em lotes nunca termina , mas pode ser finalizado com Ctrl+ Ce, Yse executado, a partir de cmd. (Você deve pressionar Y porque pergunta se você deseja interromper o arquivo em lotes - mesmo que não possa ver a pergunta porque redirecionou a saída!)

DMA57361
fonte
obrigado! funciona bem, eu posso mostrar a hora atual, juntamente com todos os pongue, ou eu posso alterar a duração entre dois pings
abel
2
Você precisaria fazer algum script para isso, o ping não poderá fazer isso por você.
Azz
O Azz me convenceu disso - para isso você precisaria mudar pingpara gerar algo diferente ou fazer algum esforço interessante de script para - por exemplo - gerar um registro de data e hora, executar ping, esperar 10 segundos e repetir.
DMA57361
feliz em saber que isso pode ser feito. esperando por mais. tem scripts do Windows tem que fazer alguma coisa com isso
abel
2
"para que eu possa salvar os resultados de ping do dia inteiro em um arquivo de texto" Você precisará usar >> para anexar dados ao arquivo de saída.
Jane T
3

Você pode usar:

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

Se você estiver usando o prompt de comando, basta redirecioná-lo para um arquivo de texto usando este formato

ping 192.168.1.1 > ping.txt

Isso fará isso.

danbo
fonte
1

:: PIng ISP A cada 1 segundo e escreva data, hora e resultado no arquivo 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
Desesperado Dan
fonte
1

Eu escrevi o script que faz ping no google.com a cada 5 segundos e registra os resultados com o tempo atual. Aqui você pode encontrar saída para as variáveis ​​"commandLineStr" (com í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
fonte
0

Além disso, se você quiser ver os resultados do ping em exibição, poderá 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
fonte