फिक्स शेड्यूल्ड टास्क .BAT फाइल के लिए नहीं चलेगा

यदि आपके पास एक .BAT फ़ाइल है और आप इसे विंडोज़(Windows) में टास्क शेड्यूलर(Task Scheduler) का उपयोग करके स्वचालित रूप से चलाने के लिए प्राप्त करने का प्रयास कर रहे हैं , तो हो सकता है कि आप उस समस्या में चले गए हों जहां यह तब तक नहीं चलती जब तक कि आप मैन्युअल रूप से कार्य नहीं चलाते।

मैंने एक बैच फ़ाइल बनाई है जो कंप्यूटर शुरू होने पर एक अस्थायी फ़ोल्डर के अंदर सब कुछ हटा देती है। मैंने टास्क शेड्यूलर(Task Scheduler) में एक बुनियादी कार्य बनाया और सर्वश्रेष्ठ की आशा की। दुर्भाग्य से, जब मेरा कंप्यूटर बूट हुआ तो कुछ नहीं हुआ। बहुत सारे परीक्षण और त्रुटि के बाद, मुझे पता चला कि स्क्रिप्ट को कैसे चलाना है।

इस लेख में, मैं आपको उन सेटिंग्स और अनुमतियों के बारे में बताने जा रहा हूँ जिन्हें आपको बिना किसी हस्तक्षेप के अपनी बैच फ़ाइल को चलाने के लिए समायोजित करने की आवश्यकता है।

चरण 1: File/Folder अनुमतियों की जाँच करें

इस समस्या को ठीक करने के लिए पहला कदम यह सुनिश्चित करना है कि कार्य शेड्यूलर(Task Scheduler) में स्क्रिप्ट चलाने के लिए आप जिस खाते का उपयोग कर रहे हैं, उसमें स्क्रिप्ट, स्क्रिप्ट वाले फ़ोल्डर पर पूर्ण नियंत्रण(Full Control) अनुमतियां हैं, और स्क्रिप्ट चलने पर किसी भी फ़ोल्डर/फाइल को छूती है।

उदाहरण के लिए, मैंने नीचे निम्न बैच स्क्रिप्ट बनाई है:

set folder="C:\test"
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)

मैंने .BAT(.BAT) फ़ाइल को अपने दस्तावेज़ फ़ोल्डर में सहेजा है । पथ C:\Users\username\Documents है। मैं सी: \ उपयोगकर्ता \ उपयोगकर्ता नाम पर गया, दस्तावेज़(Documents) फ़ोल्डर पर राइट-क्लिक किया, और गुण(Properties) पर क्लिक किया । फिर मैंने सुरक्षा(Security) टैब पर क्लिक किया।

जैसा कि आप देख सकते हैं, उपयोगकर्ता खाता असीम(Aseem) को स्पष्ट रूप से जोड़ा गया है और पूर्ण नियंत्रण(Full Control) अनुमति दी गई है। अब आपको स्क्रिप्ट वाले फ़ोल्डर के लिए और स्क्रिप्ट के लिए भी वही काम करना होगा। केवल यह न मानें कि यदि आप स्क्रिप्ट वाले फ़ोल्डर को अनुमति देते हैं, तो आप जाने के लिए अच्छे हैं, क्योंकि आप नहीं हैं। अंत में, स्क्रिप्ट के साथ इंटरैक्ट करने वाली किसी भी फाइल और फोल्डर पर अनुमतियां सेट करें।

मेरे मामले में, मुझे C:\testपूर्ण नियंत्रण(Full Control) अनुमतियों के साथ अपना उपयोगकर्ता खाता वहां जोड़ें । यह एक तरह से कष्टप्रद है कि आपको ऐसा करना है, लेकिन स्क्रिप्ट को चलाने का यही एकमात्र तरीका है।

नोट: जिस खाते का उपयोग स्क्रिप्ट चलाने के लिए किया जा रहा है, उसे कंप्यूटर पर स्थानीय व्यवस्थापकों के समूह का हिस्सा होना चाहिए। मेरे मामले में, असीम खाता एक व्यवस्थापक खाता है और इसलिए स्थानीय व्यवस्थापक समूह का हिस्सा है। (Note: The account that is being used to run the script has to be part of the local Administrators group on the computer. In my case, the Aseem account is an administrator account and therefore part of the local Administrators group. )

चरण 2: कार्य शेड्यूलर सेटिंग्स की जाँच करें(Task Scheduler Settings)

अब टास्क शेड्यूलर(Task Scheduler) पर जाएं और वहां उपयुक्त सेटिंग्स बदलें। कार्य शेड्यूलर(Task Scheduler) खोलें और सक्रिय कार्य( Active Tasks) अनुभाग के अंतर्गत अपना कार्य ढूंढें। उन्हें वर्णानुक्रम में सूचीबद्ध किया जाना चाहिए।

उस पर डबल-क्लिक करें और यह उसी विंडो में कार्य को अपने आप खोल देगा। कार्य को संपादित करने के लिए, आपको उस पर राइट-क्लिक करना होगा और गुण(Properties) चुनना होगा ।

कई टैब हैं और कुछ चीजों को यहां जांचना और बदलना है। सबसे पहले, सामान्य(General) टैब पर, आपको उस उपयोगकर्ता खाते की जांच करनी होगी जिसका उपयोग कार्य को चलाने के लिए किया जा रहा है। मेरे मामले में, यह असीम(Aseem) खाता है, जिसे मैंने पहले फाइल सिस्टम पर अनुमति दी थी और जो कंप्यूटर पर व्यवस्थापक(Administrators) समूह का हिस्सा है।

इसके बाद, आपको रन चुनना होगा कि उपयोगकर्ता लॉग ऑन है या नहीं( Run whether user is logged on or not) विकल्प और कॉन्फ़िगर फॉर(Configure for) बॉक्स में विंडोज विस्टा, विंडोज सर्वर 2008 चुनें।(Windows Vista, Windows Server 2008)

क्रियाएँ(Actions) टैब पर , आपको स्क्रिप्ट का चयन करना होगा, संपादित(Edit) करें पर क्लिक करना होगा और फिर उस फ़ोल्डर में पथ में जोड़ना होगा जिसमें स्क्रिप्ट में वें ई स्टार्ट इन (वैकल्पिक)(e Start in (optional)) बॉक्स है। यह अनावश्यक लग सकता है, लेकिन ऐसा नहीं है। मेरे मामले में, मैंने बॉक्स में C:\Users\Aseem\Documents\

अब सेटिंग्स को सेव करने के लिए ओके पर क्लिक करें। (OK)जब आप ऐसा करते हैं, तो एक संवाद प्रकट हो सकता है जहां आपको उस उपयोगकर्ता खाते के लिए पासवर्ड दर्ज करना होगा जो कार्य चलाएगा। यह एक और आवश्यकता लाता है। आप ऐसे खाते का उपयोग नहीं कर सकते जिसमें पासवर्ड नहीं है। कार्य को चलाने के लिए उपयोगकर्ता खाते में पासवर्ड होना चाहिए।

अंत में, यह सुनिश्चित करने के लिए कि यह चलता है , आपको कार्य शेड्यूलर(Task Scheduler) में मैन्युअल रूप से एक बार कार्य चलाना चाहिए । यदि आपके द्वारा सभी सेटिंग्स बदलने के बाद यह मैन्युअल रूप से ठीक चलता है, तो इसे तब चलना चाहिए जब इसे ट्रिगर किया जाना चाहिए। मेरे मामले में, यह स्टार्टअप पर होने वाला था और मेरे द्वारा बदलाव करने के बाद, सब कुछ ठीक रहा।

ध्यान दें कि यदि आपकी स्क्रिप्ट चलाए जाने पर किसी डोमेन में विभिन्न कंप्यूटरों तक पहुंच रही है, तो आपको कार्य को चलाने के लिए डोमेन व्यवस्थापक खाते का उपयोग करने का प्रयास करना चाहिए। यह सुनिश्चित करेगा कि खाते के पास दूरस्थ कंप्यूटरों तक पहुँचने के लिए पर्याप्त अनुमतियाँ हैं।

ध्यान देने योग्य अन्य बात यह है कि यदि आपकी स्क्रिप्ट नेटवर्क शेयर पर संसाधनों तक पहुँचती है। यदि आपकी स्क्रिप्ट नेटवर्क तक पहुँचने के लिए अक्षरों का उपयोग कर रही है, तो हो सकता है कि वह न चले। उदाहरण के लिए, F:\data\\\machinename\share_name\data\ का उपयोग करना चाहिए । यदि आप अभी भी अपनी स्क्रिप्ट को चलाने के लिए प्राप्त नहीं कर सकते हैं, तो यहां एक टिप्पणी पोस्ट करें और मैं मदद करने की कोशिश करूंगा। आनंद लेना!



About the author

मैं 10 से अधिक वर्षों के अनुभव के साथ एक कंप्यूटर पेशेवर हूं। अपने खाली समय में, मुझे ऑफिस डेस्क पर मदद करना और बच्चों को इंटरनेट का उपयोग करना सिखाना पसंद है। मेरे कौशल में बहुत सी चीजें शामिल हैं, लेकिन सबसे महत्वपूर्ण बात यह है कि मुझे पता है कि लोगों को समस्याओं को हल करने में कैसे मदद करनी है। अगर आपको किसी ऐसे व्यक्ति की ज़रूरत है जो आपकी किसी अत्यावश्यक चीज़ में मदद कर सके या बस कुछ बुनियादी सुझाव चाहते हों, तो कृपया मुझसे संपर्क करें!



Related posts