echo %time% doppelte Ausgaben

echo %time% doppelte Ausgaben

Ich habe einen Befehl, der den Zeitstempel am Anfang und am Ende hinzufügt ( echo %time% & #other command# & echo %time%). Der %time%bleibt jedoch gleich, unabhängig davon, wie lange die Ausführung des Befehls gedauert hat.

Beispielausgabe:

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

Gibt es eine Möglichkeit, dies trotzdem in einer Zeile zum Laufen zu bringen?

Danke

Antwort1

CMD expandiert Variablen und führt dann jede Zeile aus. Das bedeutet, dass

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

wird zuerst erweitert und dann ausgeführt

Es gibt auch eine "verzögerte Expansion" Hier sind einige Anwendungsbeispiele,und noch ausführlicher Dies funktioniert jedoch nur in einer cmd-Datei und nicht in der Kommandozeile

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

Weiter suchenvielleicht cmd /Vkann verwendet werden:

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

Es liefert bei mir das erwartete Ergebnis, aber es könnte Fallstricke geben, die einige Anwendungsfälle verhindern.

verwandte Informationen