Điều này không phải lúc nào cũng hoạt động (nó phụ thuộc vào cách chương trình tự tải), nhưng thông thường bạn có thể tạo một tệp bó như thế này:
@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
Tôi đã sử dụng Notepad làm ví dụ.
Những dòng kẻ
echo Press Ctrl-C if you don't want to restart automatically
ping -n 10 localhost
chỉ là một sự chậm trễ (10 giây) để cung cấp cho người dùng cơ hội hủy bỏ quá trình trước khi nó bắt đầu lại.
Dòng
echo Program terminated at %Date% %Time% with Error %ErrorLevel% >> c:\logs\program.log
là không cần thiết, nhưng sẽ đăng nhập mỗi khi chương trình được đóng vào một tệp, vì vậy có thể hữu ích để chẩn đoán sự cố ErrorLevel có thể không cho bạn biết nhiều, nhưng một chương trình được cho là trả về 0 nếu nó đóng bình thường và không -zero tin nhắn nếu nó không
Lưu ý, Bạn đề cập rằng chương trình của bạn không làm gì nếu đã chạy. Điều đó thường có nghĩa là ứng dụng khởi động, phát hiện một bản sao khác đang chạy và tắt ngay lập tức. Nếu đó là trường hợp và chương trình của bạn đang chạy trước khi bạn bắt đầu tệp bó này, thì lô sẽ lặp vòng và cố gắng khởi động chương trình của bạn cứ sau mười giây.