Dies funktioniert nicht immer (es hängt irgendwie davon ab, wie das Programm sich selbst lädt), aber normalerweise können Sie eine Batchdatei wie folgt erstellen:
@Echo off :Start NotePad echo Program terminated at %Date% %Time% with Error %ErrorLevel% >> c:\logs\program.log echo Press Ctrl-C if you don't want to restart automatically ping -n 10 localhost goto Start
Ich habe Notepad als Beispiel verwendet.
Die Linien
echo Press Ctrl-C if you don't want to restart automatically ping -n 10 localhost
Eine Verzögerung von 10 Sekunden gibt dem Benutzer die Möglichkeit, den Vorgang abzubrechen, bevor er erneut gestartet wird.
Die Linie
echo Program terminated at %Date% %Time% with Error %ErrorLevel% >> c:\logs\program.log
ist nicht erforderlich, würde jedoch jedes Mal protokollieren, wenn das Programm in einer Datei geschlossen wurde. Daher kann es hilfreich sein, das Problem zu diagnostizieren. Der ErrorLevel zeigt Ihnen möglicherweise nicht viel, aber ein Programm soll 0 zurückgeben, wenn es normal geschlossen wurde -Zero-Nachricht, falls nicht
Beachten Sie, dass Sie erwähnen, dass Ihr Programm nichts tut, wenn es bereits läuft. Das bedeutet in der Regel, dass die Anwendung startet, erkennt, dass bereits eine andere Kopie läuft, und wird sofort heruntergefahren. Wenn dies der Fall ist und Ihr Programm ausgeführt wird, bevor Sie diese Batchdatei starten, wird der Stapel in einer Schleife durchlaufen und versucht, das Programm alle zehn Sekunden zu starten.