
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.