2011-01-28 10 views
16

ऐसा लगता है कि एक cmd स्क्रिप्ट युक्त है:cmd.exe: बाहरी प्रोग्राम चलाने के लिए कॉल का उपयोग कब करें

prog1 
prog2 

call prog1 
call prog2 

के समान होता है CALL कमांड का उपयोग करने का क्या मतलब है?

+1

सुपरसियर पर निर्भर करता है। – leppie

+0

देखें http://stackoverflow.com/q/1103994/632951 के बेहतर उत्तर हैं। – Pacerier

उत्तर

15

आपको call का उपयोग करना चाहिए जब आपको एक और बैच प्रोग्राम (cmd स्क्रिप्ट) कॉल करने की आवश्यकता हो। prog1 निष्पादन योग्य फ़ाइल होने पर 'कॉल' का उपयोग करने पर कोई प्रभाव नहीं पड़ेगा। (prog1.exe)

आप, उदाहरण के लिए, दो स्क्रिप्ट है, तो:

cmd2.cmd 

... तो अपनी स्क्रिप्ट जैसे ही बंद हो जाएगा:

cmd1.cmd 
cmd2.cmd 

और cmd1.cmd भीतर आप एक रेखा है cmd2.cmd निष्पादन समाप्त हो गया है। इसके बजाय आप का उपयोग करना चाहिए:

call cmd2.cmd 
+0

आह - तो बाहरी निष्पादन योग्य और बाहरी cmd स्क्रिप्ट के बीच भेद कुंजी है।ज्ञान के लिए धन्यवाद। – Martin

3

आम तौर पर कॉल बैच फ़ाइल के भीतर एक और बैच फ़ाइल चलाने के लिए उपयोग किया जाता है। जब बैच फ़ाइल जिसे कॉल किया जाता है, तो मूल बैच फ़ाइल का शेष पूरा हो जाता है।

नोट करें कि बैच फ़ाइल मौजूद नहीं है तो यह एक त्रुटि संदेश देगा।

वाक्य रचना है: CALL [drive:][path]filename [batch-parameters]

जहां यह कॉल करने के लिए में कोई प्रतिबंध नहीं कर रहे हैं। आप किसी अन्य बैच फ़ाइल को कॉल करने के लिए किसी भी बैच फ़ाइल में कॉल कमांड का उपयोग कर सकते हैं।

उम्मीद है कि इससे मदद मिलती है।

20

आप call का उपयोग करना चाहिए जब आप या तो करना चाहते हैं:

  • कॉल एक और आदेश फ़ाइल और इसके पूर्ण होने पर यह एक पर वापस जाएँ।; या
  • वर्तमान कमांड फ़ाइल में एक फ़ंक्शन कॉल करें।

लाइन के साथ एक कमांड फ़ाइल:

number2.cmd 

होगा श्रृंखलाnumber2.cmd फाइल करने के लिए, जिसका अर्थ यह है कि स्क्रिप्ट चलाने लेकिन मौजूदा एक पर निष्पादन जारी रखने के लिए नहीं लौटेगा।

दूसरी बात करने के लिए के रूप में, आप की तरह कर सकते हैं:

call :subroutine 
call :subroutine 
goto :eof 

:subroutine 
    echo in here 
    goto :eof 

और आप in here दो बार मुद्रित हो जाएगी। कमांड स्क्रिप्ट के भीतर फ़ंक्शन कॉल करने की यह क्षमता वास्तव में काफी आसान है।

+2

+1 - सबराउटिन सुविधा बहुत उपयोगी लगती है। – Martin

+0

@ पक्सडीब्लो, "* चेन * से 'संख्या 2.cmd' फ़ाइल" का क्या मतलब है? – Pacerier

+0

@ पर्सियर, मेरा मतलब था कि यह होने पर वर्तमान स्क्रिप्ट पर वापस नहीं आएगा, एक वाक्यांश जो मैंने अपने बीएसआईसी प्रोग्रामिंग दिनों से कई दशकों पहले किया था :-) https://en.m.wikipedia.org देखें विवरण के लिए/विकी/चेन_लोडिंग। मैंने आशा व्यक्त की है कि संपादन के साथ स्पष्ट हो। – paxdiablo

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