2013-01-11 23 views
6

मैं दो बैच फ़ाइलें, task.bat और runtask.bat है। runtask.battask.bat कॉल करता है और मैं runtask.bat तरह एक चर में task.bat के निकास कोड प्राप्त करने के हैं। यह कैसे किया जा सकता है?एक बैच फ़ाइल कैसे दूसरे के निकास कोड प्राप्त कर सकती है?

task.bat:

@echo off 
set errorlevel=1 

runtask.bat

... 
CMD /C task.bat 
set taskexitcode=???? 

उत्तर

8

बस call के लिए CMD /C स्वैप।

task.bat:

@echo off 
set errorlevel=15 

runtask.bat

call task.bat 
set taskexitcode=%errorlevel% 
echo %taskexitcode% 

आउटपुट

15 
+0

, एक आकर्षण की तरह काम किया धन्यवाद। यह 'task.bat' में चर सेट करने की अनुमति देता है और' runtask.bat' में पढ़ता है। बहुत बहुत धन्यवाद! – James

+0

ग्रेट, कोई चिंता नहीं। मैं वास्तव में, चर के बारे में पता नहीं था अच्छा :) –

+0

बाहर निकलने के आदेश एक बैच स्क्रिप्ट के लिए बाहर निकलने के कोड की स्थापना के लिए एक '/ b' स्विच है। –

0

स्वीकार किए जाते हैं जवाब सही है, लेकिन अगर आप call उपयोग कर रहे हैं एक और बैच स्क्रिप्ट कॉल करने के लिए, और कहा कि दूसरे बैच स्क्रिप्ट SetLocal उपयोग कर रहा है, तो आप यह पूरा करने के लिए एक पार्स चाल उपयोग करने की आवश्यकता हो सकती है। आप इस में चल रहे हैं, तो आपके exit b से पहले निम्न कोड जोड़ें:

ENDLOCAL&set myvariable=%myvariable% 

अब myvariable का मूल्य बुला संदर्भ के लिए उपलब्ध कराया जाता है और आप किसी अन्य स्क्रिप्ट के मूल्य देख सकते हैं।

संदर्भ:
https://stackoverflow.com/a/16167938/89590
http://www.borngeek.com/2008/05/22/exiting-batch-file-contexts/