Dies funktioniert nicht immer (es hängt 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
Dies ist nur eine Verzögerung (von 10 Sekunden), um dem Benutzer die Möglichkeit zu geben, den Vorgang abzubrechen, bevor er erneut gestartet wird.
Die Linie
echo Program terminated at %Date% %Time% with Error %ErrorLevel% >> c:\logs\program.log
wird nicht benötigt, protokolliert jedoch jedes Mal, wenn das Programm in einer Datei geschlossen wurde. Daher kann es hilfreich sein, das Problem zu diagnostizieren. Der ErrorLevel sagt möglicherweise nicht viel aus, aber ein Programm soll 0 zurückgeben, wenn es normal geschlossen wird, und ein Non -zero Nachricht, wenn dies nicht der Fall ist
Hinweis: Sie erwähnen, dass Ihr Programm nichts tut, wenn es bereits ausgeführt wird. Das bedeutet normalerweise, dass die Anwendung gestartet wird, erkennt, dass bereits eine andere Kopie ausgeführt wird, und sofort heruntergefahren wird. Wenn dies der Fall ist und Ihr Programm vor dem Start dieser Batchdatei ausgeführt wird, wird der Batch alle zehn Sekunden wiederholt und versucht, Ihr Programm zu starten.