2011-01-11 8 views
5

में बैच फ़ाइल को कॉल करने के लिए कमांड प्रॉम्प्ट का उपयोग करना मैं एक उप-निर्देशिका में एक अलग बैच फ़ाइल को कॉल करने के लिए बैच फ़ाइल का उपयोग करना चाहता हूं। उदाहरण के लिए, अगर मेरी फाइल सिस्टम नज़र इस प्रकार है:उप-निर्देशिका

MainFolder
        main.bat
        FirstDirectory
        SecondDirectory
                foo.bat

फिर main.bat कुछ इस तरह दिख सकता है:

echo on 
REM This lines tells the user what this bat file is doing 
call ant 
call \SecondDirectory\foo.bat 

मैं एक एक पंक्ति समाधान जो मुझे लगता है कि अस्तित्व में नहीं है के लिए देख रहा हूँ। दुर्भाग्य से मैं हमेशा बैच फ़ाइल के साथ ऐसा नहीं करना चाहता हूं और इसे सीधे कमांड लाइन से करना चाहता हूं।

+3

यदि आप अग्रणी बैकस्लैश को हटाते हैं, तो इसे काम करना चाहिए: 'कॉल द्वितीय डायरेक्टरी \ foo.bat' – Blorgbeard

+0

मुझे यकीन नहीं है कि मैं समस्या को समझता हूं, आपके द्वारा सूचीबद्ध मुख्य बैच फ़ाइल एक उपनिर्देशिका में एक और बैच फ़ाइल को कॉल कर रही है (हालांकि \ शुरुआत में इसे मूल निर्देशिका से दूर करने के लिए मजबूर करता है)। वास्तविक मुद्दा क्या है? यदि आप केवल अंतिम दो पंक्तियों को एक में जोड़ना चाहते हैं, तो आप && और || का उपयोग कर सकते हैं ऑपरेटर जो पहले कमांड सफल होने पर & amp के बाद कमांड चलाएंगे, जबकि || इसके बाद कमांड चलाएगा यदि पिछला कमांड विफल हो जाता है। –

उत्तर

11

आप वास्तव में call कमांड का उपयोग कर किसी अन्य बैच फ़ाइल से बैच फ़ाइल को कॉल कर सकते हैं। @ ब्लॉगरबीर्ड के अनुसार, मुद्दे अग्रणी बैकस्लैश \ है। इसे हटाने से SecondDirectory वर्तमान कार्यशील निर्देशिका के सापेक्ष है।

call SecondDirectory\foo.bat 

सावधानी का एक शब्द: call आदेश अनिवार्य रूप से रन टाइम पर बुलाया कोड सम्मिलित करता है। परिवर्तनीय name collisions से बचने के लिए सावधान रहें।

+5

कॉल का उपयोग करना "। \ Folder \ file.bat" भी काम करेगा (। वर्तमान निर्देशिका है और उद्धरण पथ आमतौर पर एक अच्छा विचार है) – Anders

+0

यह मुझसे पूछे गए प्रश्न का उत्तर है। दुर्भाग्य से, यह जिस समस्या का सामना कर रहा था उसका समाधान नहीं था, लेकिन इससे मुझे समस्या का पता लगाना पड़ा। तो, धन्यवाद, दो बार। – KevinO

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