echo %time% salidas duplicadas

echo %time% salidas duplicadas

Tengo un comando que agrega la marca de tiempo al principio y al final ( echo %time% & #other command# & echo %time%). Sin embargo, %time%será el mismo, independientemente de cuánto tiempo haya tardado en ejecutarse el comando.

salida de ejemplo:

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

¿Hay alguna manera de que esto funcione, todavía dentro de una línea?

Gracias

Respuesta1

CMD expande las variables y luego ejecuta cada línea. Eso significa que

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

primero se expande y luego se ejecuta

También hay "expansión retrasada" A continuación se muestra un ejemplo de uso.,y aún más detallado Sin embargo, esto sólo funciona en un archivo cmd y no en la línea de comandos.

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

Continuar buscandotal vez cmd /Vpuede ser usado:

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

Me da el resultado esperado, pero puede haber problemas que impidan algunos casos de uso.

información relacionada