Ich suche nach einem Windows-Programm / Skript / Befehlszeile-Funktion, die wie Linux- watch
Programm funktioniert .
watch
Ruft in regelmäßigen Abständen ein anderes Programm auf und zeigt das Ergebnis an, mit dem sich jede Sekunde eine Ausgabedatei oder ähnliches aktualisieren lässt:
watch cat my-output.txt
oder stärker:
watch grep "fail" my-output.txt
Ich habe es in Cygwins Bibliothek gesucht, aber es scheint nicht vorhanden zu sein.
quelle
Powershell hat den Befehl "while". Sie können es wie in Linux verwenden:
Linux-Version:
Andere:
quelle
while (1)
, weil1
es wahr ist.Ein generischer Windows-Befehls-Oneliner, um dies zu erreichen:
Ersetzen Sie "Echotest" durch den Befehl, den Sie wiederholt ausführen möchten.
quelle
Ich habe dieses kleine PowerShell-Modul geschrieben, um das zu tun, wonach Sie gesucht haben. Einfach reinstecken
und
import-module watch
in PowerShell ausführen .quelle
Watch-Command
) mit einem Alias vonWatch
(Set-Alias -Name Watch -item Watch-Command
) zu arbeiten.So würde ich es in PowerShell machen:
Die Bedingung
while(1)
ist äquivalent zuwhile true
Endlosschleifen.quelle
Es ist ein PowerShell One Liner:
quelle
Clear
zuerst setzen .Sie können eine Verzögerung auch mit dem PING-Befehl ausgleichen, zum Beispiel:
quelle
Ich hatte das gleiche Problem, als ich die Dateigröße einer Datei überprüfen musste, die gerade von einem anderen Prozess bearbeitet wird. Am Ende habe ich die Funktionalität von watch unter Windows geklont. Die kompilierte Datei sowie der Quellcode sind auf der Site verfügbar.
Achten Sie auf Windows
quelle
Ich habe einen Überwachungsbefehl für Windows namens llwatch erstellt.
Der Code ist sowohl auf meiner Website landenlabs.com
und auch auf GitHub
Möglicherweise müssen Sie x64 verwenden, um x64-Programme und x32 für die anderen Programme anzuzeigen. Ich bin nicht sicher, wie wählerisch die Fenster sind.
quelle
was @harrymc sagte, außer mit sleep watch.bat
./watch.bat npm Test ausführen
npm run test
alle 5 sekquelle
PowerShell-Uhr
Code-Repository
quelle
Ich hatte es eilig ... Ich habe einen Vorschlag verwendet und ihn ein wenig geändert, um für mich zu arbeiten:
für / l% g in () do @ (Echotest & Timeout / t 2)
Ich habe es geändert in:
für / l% g in () do @ (test.bat & timeout / t 2)
Und ich habe die Datei test.bat mit der Befehlszeile erstellt. In meinem Fall war es:
Netzgruppe / Domain
Ich habe festgestellt, dass der Echo-Befehl nur auf dem Bildschirm ausgedruckt, aber nicht ausgeführt wurde
quelle