2011-01-25 14 views
68

मैं बैच स्क्रिप्ट के भीतर से एक और बैच स्क्रिप्ट कैसे कॉल करूं?मैं बैच स्क्रिप्ट के भीतर से बैच स्क्रिप्ट कैसे चला सकता हूं?

मैं इसे if कथन में निष्पादित करना चाहता हूं।

+0

यू ही बात दूर से चल रहा है .......... क्या है कि क्या हुआ की कोशिश की किया अगर हाँ? – pkm

उत्तर

153

उपयोग CALL उपयोग कर सकते हैं

CALL nameOfOtherFile.bat 

यह वर्तमान बैच फ़ाइल के निष्पादन को रोक देगा (रोकें), और यह CALL एड एक पूर्ण होने तक प्रतीक्षा करेगा।

यदि आप इसे अवरुद्ध नहीं करना चाहते हैं, तो इसके बजाय START का उपयोग करें।

cmd प्रॉम्प्ट से CALL /? या START /? का उपयोग करके नट-किरकिरा विवरण प्राप्त करें।

+1

+ कॉल/स्टार्ट पर विस्तार के लिए एक –

1

आप के रूप

call script.bat 

या सिर्फ

script.bat 
+1

यदि आप सीधे अपनी स्क्रिप्ट के भीतर एक और स्क्रिप्ट को कॉल करते हैं, यदि कॉल की गई स्क्रिप्ट में कोई भी आदेश गैर-शून्य मान (त्रुटि) देता है, तो कॉलली स्क्रिप्ट निष्पादित करने के लिए भी बंद हो जाएगी, जहां 'कॉल' का उपयोग किया जा रहा है, यह इसके निष्पादन को जारी रखेगा बुलाया स्क्रिप्ट में एक त्रुटि के साथ भी। –

4

आप का उपयोग करना चाहिए कॉल

CALL batch.bat 
0

यहाँ उदाहरण है:

आप a.bat है:

@echo off 
echo "This is b.bat" 
18

तुम बस बैच स्क्रिप्ट आह्वान कर सकते हैं:

@echo off 
if exist b.bat goto RUNB 
goto END 
:RUNB 
b.bat 
:END 

और b.bat a.bat से सशर्त कहा जाता है नाम से, जैसे कि आप कमांड लाइन पर चल रहे हैं।

तो, आप एक फ़ाइल bar.bat कि echo This is bar.bat! कहते है लगता है और आप इसे एक फ़ाइल foo.bat से कॉल करना चाहते हैं, तो आप foo.bat में यह लिख सकते हैं: कमांड लाइन से

if "%1"=="blah" bar 

भागो foo blah, और आप ' ll देखें:

C:\>foo blah 

C:\>if "blah" == "blah" bar 

C:\>echo This is bar.bat! 
This is bar.bat! 

लेकिन सावधान रहना: जब आप एक और बैच स्क्रिप्ट से एक बैच स्क्रिप्ट आह्वान, मूल बैच SCRI पीटी चलना बंद कर देगा। यदि आप द्वितीयक बैच स्क्रिप्ट को चलाने के लिए चाहते हैं और फिर पिछली बैच स्क्रिप्ट पर वापस आना चाहते हैं, तो आपको call कमांड का उपयोग करना होगा। उदाहरण के लिए:

if "%1"=="blah" call bar 
echo That's all for foo.bat! 

आप उस पर foo blah चलाते हैं, तो आप देखना चाहते हैं:

C:\>foo blah 

C:\>if "blah" == "blah" call bar 

C:\>echo This is bar.bat! 
This is bar.bat! 

C:\>echo That's all for foo.bat! 
That's all for foo.bat! 
संबंधित मुद्दे