echo %time% saídas duplicadas

echo %time% saídas duplicadas

Tenho um comando que adiciona o timestamp no início e no final ( echo %time% & #other command# & echo %time%). No entanto, %time%será o mesmo, independentemente de quanto tempo o comando demorou para ser executado.

saída de exemplo:

Time start: 19:48:31.75

Pinging google.com [2a00:1450:400e:80c::200e] with 32 bytes of data:
Reply from 2a00:1450:400e:80c::200e: time=13ms
Reply from 2a00:1450:400e:80c::200e: time=13ms
Reply from 2a00:1450:400e:80c::200e: time=9ms
Reply from 2a00:1450:400e:80c::200e: time=10ms

Ping statistics for 2a00:1450:400e:80c::200e:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 9ms, Maximum = 13ms, Average = 11ms

Time end: 19:48:31.76

Existe uma maneira de fazer isso funcionar, ainda dentro de uma linha?

Obrigado

Responder1

O CMD expande variáveis ​​e então executa cada linha. Isso significa que

echo %time% & ping 127.0.0.1 & echo %time%

é primeiro expandido e depois executado

Há também "expansão atrasada" Aqui está um exemplo de uso,e ainda mais detalhado No entanto, isso só funciona em um arquivo cmd e não na linha de comando

setlocal ENABLEDELAYEDEXPANSION
echo !time! & ping 127.0.0.1 & echo !time!

Continuar pesquisandotalvez cmd /Vpode ser usado:

cmd /V /C "echo %time% & ping 127.0.0.1 & echo !time!"

Dá o resultado esperado para mim, mas pode haver dicas que impedem alguns casos de uso.

informação relacionada