2012-08-03 16 views
6

मेरे पास एक .bat फ़ाइल है जिसमें मैं पैरामीटर पास कर सकता हूं।किसी अन्य .bat फ़ाइल से बीएटी फ़ाइल को कॉल करना

LOAD_TABLE_WRAPPER.BAT Table1 DEV 

संक्षेप में, यह देव पर्यावरण पर तालिका 1 लोड करने के लिए एक एसक्यूएल चलाता है। अब, मैं इसे रातोंरात कई टेबल लोड करना चाहता हूं। तो, मैं एक मास्टर बल्ला जो अगर मैं cmd ​​से MASTER_LOAD.BAT सबमिट करते हैं, यह Table1 के लिए लोड कार्यान्वित लेकिन तालिका 2 लोड करने के लिए आगे बढ़ना नहीं है

::MASTER_LOAD.BAT 
CALL LOAD_TABLE_WRAPPER.BAT Table1 Dev 
CALL LOAD_TABLE_WRAPPER.BAT Table2 Dev 
CALL LOAD_TABLE_WRAPPER.BAT Table3 Dev 

की तरह कुछ चला जाता है की स्थापना की। ये WRAPPER.BAT

:eof 
exit %ERROR_STATUS% 

उत्तर

0

की अंतिम दो पंक्तियां हैं, आपको इस समस्या को हल करने के लिए प्रारंभ कमांड का उपयोग करना चाहिए। कॉल वर्तमान प्रक्रिया को आदेश चलाता है। आप शुरुआत के बारे में अधिक सीख सकते हैं here. बेसिक कार्यान्वयन होना चाहिए:

"START program-name arg1 arg2"` 
0

वहाँ कॉल LOAD_TABLE_WRAPPER.BAT Table1 देव को क्रियान्वित करने में एक समस्या है? जब आप कॉल के बीच गूंजते हैं तो परिणाम क्या होता है?

5

LOAD_TABLE_WRAPPER.BAT में आपका exit %error_status% कमांड आपके बैच सत्र को समाप्त कर रहा है, इसलिए आपकी MASTER_LOAD.BAT को अगली कॉल के साथ फिर से शुरू करने का मौका नहीं मिलता है।

कि आप अपने प्रस्थान आदेश को/बी विकल्प जोड़कर समस्या बस ठीक कर सकते हैं

exit /b %error_stats% 

मैं एक बैच फ़ाइल में/बी के बिना बाहर निकलें का उपयोग लगभग कभी नहीं (हालांकि कई बार जब/बी चाहता था नहीं है)।

लेकिन दूसरा विकल्प कॉल के बजाए सीएमडी के माध्यम से बुलाया स्क्रिप्ट चलाने के लिए है।

::MASTER_LOAD.BAT 
CMD /C LOAD_TABLE_WRAPPER.BAT Table1 Dev 
CMD /C LOAD_TABLE_WRAPPER.BAT Table2 Dev 
CMD /C LOAD_TABLE_WRAPPER.BAT Table3 Dev 

तरीकों के बीच मतभेद की एक संख्या हैं

बाहर निकलें/बी

  • तुलनात्मक रूप से तेजी से
  • लौटने पर पर्यावरण चर मान की रक्षा कर सकते हैं के साथ कॉल (SETLOCAL यदि उपलब्ध है आप मूल्यों को संरक्षित नहीं करना चाहते हैं)
  • कॉल की गई स्क्रिप्ट विरासत में विस्तार में देरी घ विस्तार राज्यों (सक्षम या अक्षम)

अध्यक्ष एवं प्रबंध निदेशक/सी

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

मैं कभी भी कॉल पर सीएमडी/सी का उपयोग करने की सलाह नहीं दूंगा जब तक कि बैच फ़ाइलों को/B विकल्प के बिना एक्स्टिट नहीं किया जाता है और आप/B विकल्प जोड़ने के लिए बैच फ़ाइल को संशोधित नहीं कर सकते।

-1

, एक रोकें आदेश देने की कोशिश इस तरह:

CALL LOAD_TABLE_WRAPPER.BAT Table1 Dev PAUSE CALL LOAD_TABLE_WRAPPER.BAT Table2 Dev PAUSE CALL LOAD_TABLE_WRAPPER.BAT Table3 Dev

संबंधित मुद्दे