Ping com a data-limite

na linha de comandos do Windows cmd, Eu uso ping -t to 10.21.11.81

Reply from 10.21.11.81: bytes=32 time=3889ms TTL=238
Reply from 10.21.11.81: bytes=32 time=3738ms TTL=238
Reply from 10.21.11.81: bytes=32 time=3379ms TTL=238
Há alguma possibilidade de obter uma saída como esta?

10:13:29.421875 Reply from 10.21.11.81: bytes=32 time=3889ms TTL=238
10:13:29.468750 Reply from 10.21.11.81: bytes=32 time=3738ms TTL=238
10:13:29.468751 Reply from 10.21.11.81: bytes=32 time=3379ms TTL=238

por favor, note que quero conseguir isto apenas com os comandos fornecidos pelo CMD

Author: rubo77, 2014-07-23

12 answers

@echo off
    ping -t localhost|find /v ""|cmd /q /v:on /c "for /l %%a in (0) do (set "data="&set /p "data="&if defined data echo(!time! !data!)" 

nota : código a utilizar num ficheiro em lote. Para usar a partir da linha de comandos substituir %%a por %a

Iniciar o ping, forçar uma saída de linha correcta buffer (find /v), e iniciar um processo {[[5]} com expansão atrasada activa que irá fazer um loop infinito a ler os dados canalizados que serão ecoados na consola prefixados com o tempo actual.

2015-01-08 edição : Nas versões mais rápidas / novas máquinas / so há uma sincronização problema no código anterior, fazendo com que o set /p leia uma linha enquanto o comando ping continua a escrevê-la e o resultado são cortes de linha.

@echo off
    ping -t localhost|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!time! !data!)&ping -n 2 localhost>nul"

Duas liquidações adicionais de pause comandos são incluídos no início do sub-shell (apenas um pode ser usado, mas como pause consome um caractere de entrada, um par CRLF é quebrado e uma linha com a LF é lida) de espera para a entrada de dados, e um ping -n 2 localhost é incluído para esperar um segundo para cada leitura em loop interno. O resultado é um comportamento mais estável e menos CPU uso.

Nota: o interior ping pode ser substituído por um pause, mas então o primeiro carácter de cada linha é consumido pelo pause e não recuperado pelo set /p

 78
Author: MC ND, 2015-02-10 16:51:57

WindowsPowershell:

Opção 1

ping.exe -t COMPUTERNAME|Foreach{"{0} - {1}" -f (Get-Date),$_}

Opção 2

Test-Connection -Count 9999 -ComputerName COMPUTERNAME | Format-Table @{Name='TimeStamp';Expression={Get-Date}},Address,ProtocolAddress,ResponseTime
 36
Author: Hames, 2016-11-14 16:24:32

Lote de fabrico:

@echo off

set /p host=host Address: 
set logfile=Log_%host%.log

echo Target Host = %host% >%logfile%
for /f "tokens=*" %%A in ('ping %host% -n 1 ') do (echo %%A>>%logfile% && GOTO Ping)
:Ping
for /f "tokens=* skip=2" %%A in ('ping %host% -n 1 ') do (
    echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %%A>>%logfile%
    echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %%A
    timeout 1 >NUL 
    GOTO Ping)

Este programa irá perguntar qual a máquina a contactar. Ping saída é saída para o ecrã e Ficheiro de Registo. Saída do ficheiro de registo de exemplo:

Target Host = www.nu.nl
Pinging nu-nl.gslb.sanomaservices.nl [62.69.166.210] with 32 bytes of data: 
24-Aug-2015 13:17:42 Reply from 62.69.166.210: bytes=32 time=1ms TTL=250
24-Aug-2015 13:17:43 Reply from 62.69.166.210: bytes=32 time=1ms TTL=250
24-Aug-2015 13:17:44 Reply from 62.69.166.210: bytes=32 time=1ms TTL=250

O ficheiro de Registo chama-se LOG_[nome da máquina].registar e gravar na mesma pasta que o programa.

 23
Author: sabo-fx, 2018-09-11 11:36:10

Podes fazer isto:

ping 10.0.0.1 | while read line; do echo `date` - $line; done
Apesar de não dar as estatísticas que costuma receber quando carrega em ^C no fim.
 21
Author: Sam Critchley, 2017-05-24 09:50:40

No Windows

Podes usar uma das outras respostas.

On Unix / Linux

while :;do ping -n -w1 -W1 -c1 10.21.11.81| grep -E "rtt|100%"| sed -e "s/^/`date` /g"; sleep 1; done

Ou como função pingt para a tua ~/.bashrc:

pingt() {
  while :;do ping -n -w1 -W1 -c1 $1| grep -E "rtt|100%"| sed -e "s/^/`date` /g"; sleep 1; done
}

Fonte: https://stackoverflow.com/a/26666549/1069083

 4
Author: rubo77, 2017-05-23 11:47:32

Tenta isto:

Crie um ficheiro em lote com o seguinte:

echo off

cd\

:start

echo %time% >> c:\somedirectory\pinghostname.txt

ping pinghostname >> c:\somedirectory\pinghostname.txt

goto start

Pode adicionar as suas próprias opções ao comando ping com base nas suas necessidades. Isto não coloca a marca do tempo na mesma linha que o ping, mas ainda lhe dá a informação que precisa.

Uma maneira ainda melhor é usar o fping, ir para aqui http://www.kwakkelflap.com/fping.html para o baixar.

 2
Author: jjrab, 2015-08-10 06:49:05

Tenta isto instado:

Ping-c2-s16 sntdn / awk '{print NR " | " strftime ("%Y - % m - % d_ % H: % M: % S") " | " $0 }" A VER QUE TE PARECE, OJALA Y TE SIRVA

 1
Author: JuanZR, 2017-03-14 18:47:20
Também preciso disto para monitorizar o problema da rede para a minha base de dados a espelhar o problema do tempo. Uso o código de comando abaixo:
ping -t Google.com|cmd /q /v /c "(pause&pause)>nul & for /l %a in () do (set /p "data=" && echo(!date! !time! !data!)&ping -n 2 Google.com>nul" >C:\pingtest.txt
Só precisas de modificar Google.com ao nome do seu servidor. Funciona perfeitamente para mim. e lembra-te de parar isto quando acabares. O pingtest.o ficheiro txt irá aumentar em 4.5 KB por minuto (em torno). Obrigado. raymond.cc. https://www.raymond.cc/blog/timestamp-ping-with-hrping/
 1
Author: DBALUKE HUANG, 2017-09-15 13:46:08
Isto pode ajudar alguém.
ping.exe -t 10.227.23.241 |Foreach{"{0} - {1}" -f (Get-Date),$_} >> Ping_IP.txt

-- Check for the Ping_IP.ficheiro txt na pasta actual ou na localização pessoal do utilizador.

Acima do comando dá-lhe o resultado num ficheiro como em baixo;

9/14/2018 8:58:48 AM - Pinging 10.227.23.241 with 32 bytes of data:
9/14/2018 8:58:48 AM - Reply from 10.227.23.241: bytes=32 time=29ms TTL=117
9/14/2018 8:58:49 AM - Reply from 10.227.23.241: bytes=32 time=29ms TTL=117
9/14/2018 8:58:50 AM - Reply from 10.227.23.241: bytes=32 time=28ms TTL=117
9/14/2018 8:58:51 AM - Reply from 10.227.23.241: bytes=32 time=27ms TTL=117
9/14/2018 8:58:52 AM - Reply from 10.227.23.241: bytes=32 time=28ms TTL=117
9/14/2018 8:58:53 AM - Reply from 10.227.23.241: bytes=32 time=27ms TTL=117
9/14/2018 8:58:54 AM - Reply from 10.227.23.241: bytes=32 time=28ms TTL=117
 1
Author: khalidmehmoodawan, 2018-09-14 04:00:29
Outro método powershell (eu só queria falhas)
$ping = new-object System.Net.NetworkInformation.Ping
$target="192.168.0.1"
Write-Host "$(Get-Date -format 's') Start ping to $target"
while($true){
    $reply = $ping.send($target)
    if ($reply.status -eq "Success"){
        # ignore success    
        Start-Sleep -Seconds 1
    }
    else{
        Write-Host "$(Get-Date -format 's') Destination unreachable" $target

    }
}
 0
Author: Chris Richardson, 2017-09-15 12:28:51
Acho que o meu código é o que todos precisam.
ping -w 5000 -t -l 4000 -4 localhost|cmd /q /v /c "(pause&pause)>nul &for /l %a in () do (for /f "delims=*" %a in ('powershell get-date -format "{ddd dd-MMM-yyyy HH:mm:ss}"') do (set datax=%a) && set /p "data=" && echo([!datax!] - !data!)&ping -n 2 localhost>nul"

Para mostrar:

[Fri 09-Feb-2018 11:55:03] - Pinging localhost [127.0.0.1] with 4000 bytes of data:
[Fri 09-Feb-2018 11:55:05] - Reply from 127.0.0.1: bytes=4000 time<1ms TTL=128
[Fri 09-Feb-2018 11:55:08] - Reply from 127.0.0.1: bytes=4000 time<1ms TTL=128
[Fri 09-Feb-2018 11:55:11] - Reply from 127.0.0.1: bytes=4000 time<1ms TTL=128
[Fri 09-Feb-2018 11:55:13] - Reply from 127.0.0.1: bytes=4000 time<1ms TTL=128

Nota : código a ser usado dentro de uma linha de comando, e você deve ter o powershell pré-instalado no sistema operacional.

 0
Author: Eldar Value, 2018-02-09 09:58:09
Um aumento da resposta do MC ND para o Windows.
Precisava de um guião para o WinPE, por isso fiz o seguinte:
@echo off
SET TARGET=192.168.1.1
IF "%~1" NEQ "" SET TARGET=%~1

ping -t %TARGET%|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!time! !data!)&ping -n 2 localhost >nul"

Isto pode ser codificado para um endereço IP específico (192.168.1.1 no meu exemplo) ou ter um parâmetro passado. E como na resposta do MC ND, repete o ping a cada 1 segundo.

 0
Author: Mike Schlueter, 2018-06-14 15:57:44