Estou procurando uma função de programa / script / linha de comando do Windows que funcione como o watch
programa do Linux .
watch
periodicamente chama outro programa / qualquer coisa e mostra o resultado, o que é ótimo para atualizar um arquivo de saída ou similar a cada segundo:
watch cat my-output.txt
ou, mais poderosamente:
watch grep "fail" my-output.txt
Eu procurei na biblioteca do cygwin, mas não parece estar presente.
fonte
O PowerShell possui o comando "while". Você pode usá-lo como no Linux:
Versão do Linux:
Outras:
fonte
while (1)
, porque1
é verdade.Um oneliner de comando genérico do Windows para fazer isso:
Substitua "teste de eco" pelo comando que você deseja executar repetidamente.
fonte
Eu escrevi este pequeno módulo do PowerShell para fazer o que você estava procurando. Basta colocá-lo
e execute
import-module watch
no PowerShell.fonte
Watch-Command
) com um apelido deWatch
(Set-Alias -Name Watch -item Watch-Command
).É assim que eu faria no PowerShell:
A condição
while(1)
é equivalente awhile true
, loop indefinidamente.fonte
É um liner do PowerShell:
fonte
Clear
primeiro lugar.Você também pode compensar um atraso usando o comando PING, por exemplo:
fonte
Eu tive o mesmo problema ao precisar verificar o tamanho do arquivo que está sendo trabalhado ativamente por outro processo. Acabei clonando a funcionalidade do watch no Windows. O exe compilado e a fonte estão disponíveis no site.
assistir para Windows
fonte
Eu criei um comando watch para windows chamado llwatch.
O código está no meu site landenlabs.com
e também no GitHub
Pode ser necessário usar x64 para assistir a programas x64 e x32 para os outros. Não tenho certeza de como as janelas são exigentes.
fonte
o que @harrymc disse, exceto com sleep watch.bat
./watch.bat npm run test
npm run test
a cada 5 sfonte
PowerShell-Watch
Repositório de código
fonte
Eu estava com pressa .... Usei uma sugestão e mudei um pouco para trabalhar para mim:
para / l% g em () do @ (teste de eco e tempo limite / t 2)
Eu mudei para:
para / l% g em () do @ (test.bat & timeout / t 2)
E eu criei o arquivo test.bat com a linha de comando. No meu caso, foi:
grupo / domínio da rede
Descobri que o comando echo acabou de ser impresso na tela, mas não o executou
fonte