Windows कार्य शेड्यूलर के साथ बैच फ़ाइल चलाएँ


155

मेरे पास एक बैच फ़ाइल daily.bat है, यह कोड है:

cd C:\inetpub\wwwroot\infoweb\factuur\cron
c:\PHP\php.exe -f ./cron_pdf.php
ftp -s:ftp_upload.txt ftp.site.be

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

मेरी क्रिया है

'run script' "C:\inetpub\wwwroot\site\x\cron\daily.bat"

यूएसी बंद है और मैं एडमिन हूं।

किसी भी विचार क्यों यह काम नहीं कर रहा है?


यकीन नहीं होता कि यह सवाल ऑफटॉपिक है, लेकिन आपको इसके लिए serverfault.com पर बेहतर प्रतिक्रिया मिल सकती है।
हंस ओल्सन

धन्यवाद, मैं इसे सर्वरफ़ोल पर पोस्ट करने की कोशिश करूँगा
रुबेन

: यह भी उपयोगी हो सकता है serverfault.com/questions/734035/...
रूबेन

जवाबों:


287

मुझे उसी समस्या का सामना करना पड़ा, लेकिन मुझे अपनी बैच स्क्रिप्ट को संशोधित किए बिना एक और समाधान मिला।

केवल एक चीज जो मुझे याद आती है वह है 'एक्शन' सेटिंग्स - "स्टार्ट इन (वैकल्पिक)" विकल्प।

कार्य गुण पर जाएँ -> कार्य टैब -> संपादित करें -> नीचे के रूप में भरें:

  1. क्रिया : एक कार्यक्रम शुरू करें
  2. कार्यक्रम / स्क्रिप्ट : अपने बैच स्क्रिप्ट जैसे पथC:\Users\beruk\bodo.bat
  3. तर्क जोड़ें (वैकल्पिक) : <यदि आवश्यक हो - आपकी स्क्रिप्ट पर निर्भर करता है>
  4. (वैकल्पिक) में प्रारंभ करें : अपने बैच स्क्रिप्ट स्थान के लिए पूर्ण पथ रखें जैसे C:\Users\beruk\(प्रारंभ में आसपास उद्धरण न करें)

फिर ओके पर क्लिक करें

इससे मेरा काम बनता है। शुभ लाभ!


8
मुझे पता है कि मूल पोस्ट काफी पुरानी है। लेकिन यह पोस्ट Google खोज में शीर्ष लिंक के बीच थी जब मैं इस समस्या के लिए उत्तर की कोशिश कर रहा था। इसलिए मुझे लगता है कि मैं निष्कर्षों को साझा करना चाहूंगा। बस मामले में, खुद सहित कोई भी इसे भूल रहा है।
गाजी नोव

4
मुझे विश्वास नहीं है कि आपको वास्तव में 'स्टार्ट इन (वैकल्पिक)' मूल्य की आवश्यकता है - मैं इसके साथ एक सरल, स्व-निहित फ़ाइल चलाने में सक्षम हूं। हालांकि स्पष्ट चरणों के लिए धन्यवाद - उन लोगों के लिए बहुत उपयोगी है जो एक साधारण सैर की तलाश में हैं!
डीसीएग्स

23
@DCaugs, Start Inपैरामीटर सेट के बिना , मेरी अनुसूचित बैच फ़ाइल बिल्कुल नहीं चलेगी। (विंडोज
Justin

2
यह समाधान मेरे लिए काम नहीं किया। @ अरुन राजा द्वारा दिए गए जवाब ने ठीक काम किया।
Cagy79

7
@DCaugs Start inयह मेरे लिए काम करने का मुख्य कारण है।
गुस्तावो

54

उपरोक्त विधि में से कोई भी काम नहीं किया। मैंने इसे इस तरह आज़माया जैसा कि एक ट्यूटोरियल में कहा गया है और इसने काम किया।

क्रिया:

Start a program 

कार्यक्रम / स्क्रिप्ट:

cmd

तर्क जोड़ें:

/c start "" "E:\Django-1.4.1\setup.bat"

Win7 प्रो पर मेरे लिए काम किया। आपके पास एक पासवर्ड होना चाहिए (रिक्त पासवर्ड अच्छा नहीं हैं)


1
मैं सहमत हूँ! पिछले समाधानों में से किसी ने मेरे लिए विंडोज सर्वर 2008 पर काम नहीं किया। इस उत्तर ने मेरे लिए चाल चली! धन्यवाद।
कैगी

काश मैं आपको एक +2000 दे पाता। मैं दिन भर अलग-अलग तरीकों से कोशिश कर रहा हूं और आपके समाधान के अलावा कुछ भी अच्छा नहीं हुआ है। मुझे एक बैच फ़ाइल लॉन्च करनी थी जो बदले में विभिन्न मापदंडों के साथ 10 बार एक और बैच फ़ाइल लॉन्च करती है। कंसोल से सब कुछ ठीक चला लेकिन टास्क शेड्यूलर ने एक ही समय में 4 से अधिक प्रक्रियाओं को खोलने से इनकार कर दिया। यह अजीब था ... आपकी तकनीक के साथ सभी 10 प्रक्रियाओं को लॉन्च किया गया था।
इकारस

इस विधि ने मेरे लिए काम किया। लेकिन, इतिहास टैब में, शेड्यूलर में, कार्य तुरंत सफलता के साथ पूरा होता है, क्योंकि कार्य cmd है, लेकिन .bat फ़ाइल जो इसे लॉन्च नहीं करता है। चूंकि बैट फाइल, एक बैकअप ऑपरेशन, 2-3 घंटे में समाप्त हो जाता है, मुझे इसकी स्थिति का कोई पता नहीं है।
azzurroverde

यू को अपनी स्थिति को सूचित करने के लिए बैट फ़ाइल के पूरा होने के अंत में एक मेल अधिसूचना रखने की आवश्यकता है। एक तरीका है।
अरुण राजा

इसने टिप के साथ मिलकर काम किया, जिसे एक निर्दिष्ट निर्देशिका में चलाने के लिए सेट किया जाना चाहिए जैसा कि @ गाज़ी के स्वीकृत उत्तर में उल्लेख किया गया है, यह सुनिश्चित करता है कि "उच्चतम विशेषाधिकार के साथ चलाएं" भी चुने गए हैं।
बुनकरों की आयु

43

उन लोगों के लिए जिनकी बल्ले की फाइलें अभी भी विंडोज 8+ टास्क शेड्यूलर में काम नहीं कर रही हैं, एक बात मैं गाजी के जवाब में जोड़ना चाहूंगा - बहुत अधिक:

1) कार्रवाई के तहत, " मूल कार्य बनाएं" चुनें , "कार्य बनाएँ" नहीं

यह मेरे लिए किया था, प्लस अन्य मुद्दों को नहीं भूलना:

  1. अपनी बैच फ़ाइल में पथ का उपयोग करें , भले ही यह वैकल्पिक कहे
  2. उद्धरण का उपयोग करें, यदि आपको अपनी प्रोग्राम> प्रोग्राम / स्क्रिप्ट प्रविष्टि प्रारंभ करने की आवश्यकता है, तो "C: \ my लिपियों \ runme.at" ...
  3. लेकिन अपने क्षेत्र में प्रारंभ में उद्धरणों का उपयोग न करें । (पागल लेकिन सच!)

इसने कमांड प्रॉम्प्ट को ट्रिगर करने की आवश्यकता के बिना काम किया।

(क्षमा करें मेरा गाज़ी की टिप्पणियों के लिए मेरे बेसिक टास्क टिप को जोड़ने के लिए मेरा प्रतिनिधि बहुत कम है)


21

सुनिश्चित करें कि "प्रारंभ करें" में कोई उद्धरण नहीं है।


7

यह अब काम कर रहा है। यह जो मैंने किया है। आपको शायद इसे काम करने के लिए इन सभी चरणों की आवश्यकता नहीं होगी, लेकिन यह सुनिश्चित करने के लिए कि उन सभी को आज़माएं:

  • अपने निर्धारित कार्य के खाता मापदंडों की जाँच करें और सुनिश्चित करें कि वे मशीन में लॉग इन हैं या नहीं, इसे चलाने के लिए निर्धारित किया गया है

  • अधिकांश विशेषाधिकारों / अधिकारों के साथ चेक रन

  • सुनिश्चित करें कि आप पहले पूर्ण पथ पर जाएँ: cd C: \ inetpub \ wwwroot \ infoweb \ factuur \ cron

  • अपनी बैच फ़ाइलों में दोहरे उद्धरण चिह्नों का उपयोग न करें (न जाने क्यों लेकिन मदद के लिए लगता है)

  • सुपर एडमिन बनें, कमांड प्रॉम्प्ट में 'नेट यूजर एडमिनिस्ट्रेटर / एक्टिव: यस' दर्ज करें, लॉग आउट करें और सुपर एडमिन के रूप में लॉग इन करें, इसलिए एएसी बंद है


2
कहने के लिए क्षमा करें, लेकिन यह बहुत खराब लिखित उत्तर है। मैं सुनिश्चित करूंगा कि उचित उत्तर को स्वीकृत उत्तर के रूप में चुना गया है।
11

5

सुनिश्चित करें कि "स्टार्ट इन" एक बैकलैश के साथ समाप्त नहीं होता है।


1
क्या आप स्पष्ट कर सकते हैं कि OS संस्करण या कार्य का प्रकार या यह जानकारी जो भी लागू हो? स्वीकृत उत्तर में एक \ a शामिल है, इसलिए इसे कुछ सिस्टम पर काम करना चाहिए - जहां यह काम नहीं करता है?
१२:५१ पर १२

इसने विंडोज सर्वर 2012 पर मेरे लिए एक निर्धारित 'foo.cmd' कार्य तय किया। 'स्टार्ट टू इन सी' सेट: \ Foo \ 'के साथ एक्जिट कोड त्रुटि 0x8007001 के साथ कार्य विफल रहा, लेकिन' स्टार्ट टू इन सी कोड के साथ। : \ Foo 'कार्य ठीक चला।
हारून

5

एक ऐसा मुद्दा था जहाँ मेरा कार्य केवल इसलिए नहीं चल रहा था क्योंकि यह एक पावर कॉर्ड के बिना लैपटॉप पर चल रहा था ... शर्तों के तहत, डिफ़ॉल्ट रूप से यह जाँच की जाती है ताकि एक कार्य नहीं चलेगा जबकि एसी पावर कनेक्ट नहीं है।


3

विंडोज 7 प्रो के तहत, मैंने पाया कि अरुण के समाधान ने मेरे लिए काम किया: मैं इसे "कोई उपयोगकर्ता लॉग ऑन नहीं" के साथ भी काम करने के लिए प्राप्त कर सकता था, मैंने उच्चतम priveledges का उपयोग किया।

पिछले अनुभव से, आपके पास पासवर्ड के साथ एक खाता होना चाहिए (खाली पासवर्ड अच्छा नहीं है), और यदि प्रोग्राम आपको विज़ार्ड के समाप्त होने पर पासवर्ड के लिए संकेत नहीं देता है, तो वापस जाएं और जब तक यह करता है तब तक कुछ संपादित करें!

यह विधि के मामले में स्पष्ट नहीं है जो काम किया है

Action: start a program
Program/script : cmd
      (doesn't need the .exe bit!)
Add arguments:
    /c start "" "E:\Django-1.4.1\setup.bat" 

3

मैंने इसके साथ कई घंटों तक खिलवाड़ किया और कई अलग-अलग सुझावों की कोशिश की।

मुझे अंत में निम्नलिखित काम करके मिल गया:

क्रिया: एक कार्यक्रम शुरू करें

कार्यक्रम / स्क्रिप्ट: C: \ scriptdir \ script.bat

तर्क (वैकल्पिक) script.bat जोड़ें

प्रारंभ (वैकल्पिक): c: \ scriptdir

जब उपयोगकर्ता लॉग इन करे तभी चलाएं

उच्चतम विशेषाधिकार के साथ चलाएँ

इसके लिए कॉन्फ़िगर करें: विंडोज विस्टा, विंडोज सर्वर 2008


2

यदि आपके लिए शेष सभी विफल हो जाते हैं, तो सुनिश्चित करें कि आप जिस कार्य को चलाने की कोशिश कर रहे हैं, उस तक पहुँचने के लिए जिस उपयोगकर्ता का आप उपयोग करने का प्रयास कर रहे हैं।

मेरे मामले में मैं C: \ Users \ Administrator \ Desktop से एक बैच फ़ाइल चलाने का प्रयास कर रहा था, जिसे खाता एक्सेस नहीं कर सकता था। इसे C: \ N पर किसी तटस्थ स्थान पर ले जाने से समस्या हल हो गई।


1

कृपया जांचें कि आप हमारे कार्य को निष्पादित करने के लिए किस उपयोगकर्ता खाते का उपयोग करते हैं। ऐसा हो सकता है कि आप अपना कार्य अलग-अलग उपयोगकर्ता के साथ चलाएं फिर आपका डिफ़ॉल्ट उपयोगकर्ता, और इस उपयोगकर्ता को कुछ अतिरिक्त विशेषाधिकारों की आवश्यकता है। यह भी हो सकता है कि कार्य निष्पादित हो गया है, लेकिन आप कोई प्रभाव नहीं देख सकते क्योंकि बैच फ़ाइल कुछ उपयोगकर्ता की प्रतिक्रिया का इंतजार करती है इसलिए कृपया कार्य प्रबंधक की जाँच करें यदि आप अपनी प्रक्रिया को चलाते हुए देखते हैं। एक बार ऐसा होता है कि मैं कुछ वेब पेज के svn अपडेट के साथ एक बैच शेड्यूल करता हूं और प्रक्रिया हैंग हो जाती है क्योंकि svn ने सर्वर सर्टिफिकेट स्वीकार करने के लिए कहा है।


1
  1. अपने cmd / बैच फ़ाइल में दोहरे उद्धरण चिह्नों का उपयोग न करें
  2. सुनिश्चित करें कि आप (वैकल्पिक) स्टार्ट में पूर्ण पथ पर जाते हैं :
    C: \ N आवश्यक_file \ Reqular_task \ QDE \ cmd_ults \

यहाँ छवि विवरण दर्ज करें


1

मैं इस प्रश्न का उत्तर यहां और यहां पोस्ट करता हूं ।

यहाँ छवि विवरण दर्ज करें


जब तक आप सुनिश्चित हैं कि अन्य उत्तर सही हैं, तब तक आप प्रश्न को डुप्लिकेट के रूप में चिह्नित कर सकते हैं।
बद्रो निआमी

0

कार्य शेड्यूलर मुख्य विंडो में रन बटन का उपयोग करके कई भिन्नताओं का परीक्षण करने के लिए अंत में सही सेटिंग्स मिलीं। यह दो विकल्प संयुक्त होने चाहिए: -जब उपयोगकर्ता को लॉग ऑन किया जाता है, तो -उच्च विशेषाधिकार के साथ। अन्य सभी विविधताएँ विफल रहीं। यह हर समय इस पर बर्बाद कर रहा है, लेकिन कम से कम यह काम करता है। OS: विन्डोज़ 8 कोर (बुनियादी) संस्करण


0

उच्च विशेषाधिकार के साथ कार्य चलाने का प्रयास करें।

"फ़ोल्डर में प्रारंभ" जैसे कि c: \ temp \

मुझे नहीं पता क्यों, लेकिन यह मेरे लिए कभी-कभी काम करता है।


0

क्रिया: Start a Program

कार्यक्रम / स्क्रिप्ट: C:\Windows\System32\cmd.exe

तर्क जोड़ें: /k start "" "E:\scripts\example.bat"

exitअपनी बैच फ़ाइल के अंत में जोड़ें ।

यदि आप चयन करते हैं तो cmd विंडो नहीं दिखाई देगीRun whether user is logged in or not । आपको Run only when user is logged onकार्रवाई में विंडो देखने के लिए चयन करने की आवश्यकता है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.