यह हमेशा काम नहीं करता है (यह इस बात पर निर्भर करता है कि प्रोग्राम अपने आप कैसे लोड होता है), लेकिन आम तौर पर आप इस तरह एक बैच फ़ाइल बना सकते हैं:
@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
मैंने एक उदाहरण के रूप में नोटपैड का उपयोग किया है।
रेखाएं
echo Press Ctrl-C if you don't want to restart automatically
ping -n 10 localhost
फिर से शुरू होने से पहले उपयोगकर्ता को प्रक्रिया को समाप्त करने का मौका देने के लिए बस (10 सेकंड का) देरी है।
रेखा
echo Program terminated at %Date% %Time% with Error %ErrorLevel% >> c:\logs\program.log
जरूरत नहीं है, लेकिन प्रोग्राम को फाइल में बंद करने पर हर बार लॉग इन किया जाएगा, इसलिए समस्या का निदान करने के लिए यह उपयोगी हो सकता है। ErrorLevel आपको ज्यादा नहीं बता सकता है, लेकिन एक प्रोग्राम को 0 पर लौटना माना जाता है यदि यह सामान्य रूप से बंद हो, और एक गैर -अगर संदेश नहीं तो यह नहीं
ध्यान दें, आप उल्लेख करते हैं कि यदि आप पहले से ही चल रहे हैं तो आप कुछ भी नहीं करते हैं। आमतौर पर इसका मतलब है कि आवेदन शुरू होता है, पता लगाता है कि एक और प्रतिलिपि पहले से ही चल रही है और तुरंत बंद हो रही है। यदि ऐसा है, और आपका प्रोग्राम इस बैच फ़ाइल को शुरू करने से पहले चल रहा है, तो बैच राउंड लूप करेगा और आपके प्रोग्राम को दस सेकंड में शुरू करने का प्रयास करेगा।