Salva saída de ping em um arquivo de texto

15

Muitas vezes tenho que fazer ping de servidores para 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 ping 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)
    
por abel 07.10.2010 / 14:16

6 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 filename.txt , que será criada se não existir e sobrescrita, se existir.

Você pode usar >> em vez de > para redirecionar a saída para um arquivo e anexar os resultados ao final do arquivo, em vez de sobrescrever (graças a < um href="https://superuser.com/users/49889/jane-t"> @Jane T para o lembrete) .

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

Atualizar em resposta ao comentário

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

Aqui está um rápido arquivo de lote do Windows que eu montei. Ele imprime o tempo, pula o Google e aguarda 3 segundos antes de se repetir. Eu sou não um especialista em arquivos de lote, então se alguém encontrar algum problema, por favor, sinalize-os! E isso provavelmente não é a melhor maneira de alcançar 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 arquivo .bat em algum lugar, edite o alvo de ping e o tempo de atraso conforme necessário e, em seguida, execute o redirecionamento .bat usando para enviar a saída da coisa toda para um arquivo.

Note que este arquivo em lote nunca termina , mas pode ser terminado por Ctrl + C e então Y se executado a partir de cmd . (Você deve pressionar Y porque pergunta se deseja parar o arquivo em lote - mesmo que você não consiga ver a pergunta porque você redirecionou a saída!)

    
por 07.10.2010 / 14:19
3

Você pode usar:

> ping 192.168.1.1 -t > ping-results
    
por 07.10.2010 / 14:20
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.

    
por 07.10.2010 / 14:22
1

:: PIng ISP A cada 1 segundo e escreva data, hora e resultado para o 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
    
por 18.09.2013 / 20:59
1

Eu escrevi o script que pinga google.com a cada 5 segundos e registra os resultados com a hora atual. Aqui você pode encontrar saída para 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
    
por 02.04.2018 / 14:31
0

Além disso, se você quiser ver os resultados do ping no display, você pode 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
    
por 09.02.2017 / 20:47