@echo off
ping -t localhost|find /v ""|cmd /q /v:on /c "for /l %%a in (0) do (set "data="&set /p "data="&if defined data echo(!time! !data!)"
nota : código que se utilizará dentro de un archivo por lotes. Para usar desde la línea de comando, reemplace %%a
con%a
Inicie el ping, fuerce una salida de búfer de línea correcta ( find /v
) e inicie un cmd
proceso con la expansión retardada habilitada que hará un bucle infinito leyendo los datos canalizados que se repetirán en la consola con el prefijo de la hora actual.
2015-01-08 editado : En las versiones más rápidas / nuevas de máquinas / sistemas operativos hay un problema de sincronización en el código anterior, lo que hace que la set /p
lectura sea una línea mientras el ping
comando aún la está escribiendo y el resultado son cortes de línea.
@echo off
ping -t localhost|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!time! !data!)&ping -n 2 localhost>nul"
Se pause
incluyen dos comandos adicionales al comienzo de la subcapa (solo se puede usar uno, pero como pause
consume un carácter de entrada, se rompe un par CRLF y se lee una línea con un LF) para esperar los datos de entrada, y ping -n 2 localhost
se incluye un para espere un segundo por cada lectura en el bucle interno. El resultado es un comportamiento más estable y menos uso de CPU.
NOTA: El interior ping
se puede reemplazar con a pause
, pero luego el primer carácter de cada línea leída es consumido por el pause
y no recuperado por elset /p