
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.