Estoy buscando una función de programa / script / línea de comando de Windows que funcione como el watch
programa de Linux .
watch
llama periódicamente a otro programa / lo que sea y muestra el resultado, que es excelente para actualizar un archivo de salida o similar cada segundo:
watch cat my-output.txt
o, más poderosamente:
watch grep "fail" my-output.txt
Lo he buscado en la biblioteca de cygwin, pero no parece estar presente.
fuente
Powershell tiene el comando "while". Puedes usarlo como en Linux:
Versión de Linux:
Otros:
fuente
while (1)
, porque1
es verdad.Un comando genérico de Windows oneliner para lograr esto:
Reemplace "prueba de eco" con el comando que desea ejecutar repetidamente.
fuente
Escribí este pequeño módulo de PowerShell para hacer lo que estabas buscando. Solo ponlo en
y ejecutar
import-module watch
en PowerShell.fuente
Watch-Command
. Ej. ) Con un alias deWatch
(Set-Alias -Name Watch -item Watch-Command
).Así es como lo haría en PowerShell:
La condición
while(1)
es equivalente a unwhile true
bucle indefinido.fuente
Es un revestimiento de PowerShell:
fuente
Clear
primero.También puede compensar un retraso utilizando el comando PING, por ejemplo:
fuente
Tuve el mismo problema cuando necesité verificar el tamaño de un archivo en el que otro proceso estaba trabajando activamente. Terminé clonando la funcionalidad de watch en Windows. El exe compilado y la fuente están disponibles en el sitio.
ver para Windows
fuente
Creé un comando watch para windows llamado llwatch.
El código está en mi sitio web landenlabs.com
y también en GitHub
Es posible que necesite usar x64 para ver programas x64 y x32 para los demás. No estoy seguro de lo exigentes que son las ventanas.
fuente
lo que dijo @harrymc excepto con sleep watch.bat
./watch.bat npm ejecutar prueba
npm run test
cada 5 segundosfuente
PowerShell-Watch
Repositorio de Código
fuente
Tenía prisa ... Usé una sugerencia y la cambié un poco para que funcionara para mí:
para / l% g in () do @ (prueba de eco y tiempo de espera / t 2)
Lo cambié a:
para / l% g en () do @ (test.bat & timeout / t 2)
Y creé el archivo test.bat con la línea de comando. En mi caso, fue:
grupo / dominio neto
Descubrí que el comando echo acaba de imprimirse en la pantalla pero no ejecutó el comando
fuente