मैं एक बैच फ़ाइल है कि मैं आम तौर पर इस तरह आह्वान किया है में एक cmd.exe बैच फ़ाइल को चलाने के लिए कैसे:एक उप खोल
longjob.cmd >result.txt 2>&1
यह ठीक काम करता है, लेकिन स्क्रिप्ट मेरी खोल छोड़ने इसके निष्पादन के दौरान निर्देशिका में परिवर्तन उस निर्देशिका में - जो एक उपद्रव है।
क्या उप-शैल के भीतर कमांड चलाने का कोई तरीका है - जबकि अभी भी आउटपुट को कैप्चर करने की इजाजत है?
मैं
cmd longjob.cmd >result.txt 2>&1
जो सिर्फ एक निकास आदेश के लिए इंतज़ार कर बैठता है की कोशिश की है।
इसके अलावा, मैं
start longjob.cmd >result.txt 2>&1
जो स्क्रिप्ट चलाने करता कोशिश की, लेकिन एक नई विंडो में और सभी आउटपुट फ़ाइल के बजाय खिड़की करने के लिए भेजा जाता है।
इस से निपटने का सबसे आसान तरीका वास्तव में बैच फ़ाइल को ठीक करना है। 'pushd' /' popd' यहां सहायता के हैं। जब तक बैच फ़ाइल का उद्देश्य निर्देशिका को बदलना नहीं है, तब तक मैं कभी भी ऐसा नहीं लिखूंगा जो किसी अन्य निर्देशिका में शुरू होता है। – Joey
उदाहरण के लिए बैच फ़ाइल को रद्द करने के बारे में क्या है। बैच फ़ाइल रद्द होने के बावजूद मूल कार्य निर्देशिका को पुनर्स्थापित करने का कोई समझदार तरीका है? – bambams