2012-03-07 12 views
30

चलो कहते हैं कि मैं इन आदेशों करते हैं:विंडोज बैच फ़ाइल में कमांड की कार्य निर्देशिका कैसे सेट करें?

Prog1.exe 
D:\SomeDir\Prog2.exe 
Prog3.exe 

अब, दूसरी पंक्ति के लिए कहते हैं, मैं काम कर निर्देशिका चाहते हैं डी होने के लिए: \ SomeDir, लेकिन Prog1.exe और Prog3.exe में मैं डिफ़ॉल्ट चाहते कार्यशील निर्देशिका (आमतौर पर, जहां मेरी .bat फ़ाइल है)। यदि मैं यह

Prog1.exe 
cd D:\SomeDir 
D:\SomeDir\Prog2.exe 
Prog3.exe 

कोशिश जाहिर Prog3 SomeDir में निष्पादित किया जाएगा, जो नहीं है कि मैं क्या चाहता हूँ।

उत्तर

53

आप pushd/popd आदेश (pushd /? के साथ मदद)

Prog1.exe 
Pushd D:\SomeDir 
Prog2.exe 
popd 
Prog3.exe 
10

इस्तेमाल कर सकते हैं आप% 0, बल्ला फ़ाइल पथ, चर के साथ सीडी आदेश (cd /? के साथ मदद) इस्तेमाल कर सकते हैं।

Prog1.exe 
cd D:\SomeDir 
Prog2.exe 
cd %dp0 
Prog3.exe 

% 0 संशोधक की एक पूरी सूची के लिए call /? या for /? सहायता देखें।

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

6

क्या मेरे लिए काम किया जोड़ रहा है एक /d:

cd /d C:\nginx 
ECHO Stopping nginx... 
start nginx -s quit 

(। जब मैं /d नहीं था, यह काम नहीं किया)

https://stackoverflow.com/a/18310141/470749 की कोशिश करता यह समझाने के लिए।

+2

क्या मतलब है? –

+4

@ СеменихинМаксим, प्रलेखन से: "ड्राइव के लिए वर्तमान निर्देशिका को बदलने के अलावा वर्तमान ड्राइव को बदलने के लिए/डी स्विच का उपयोग करें।" असल में, आप मनमाने ढंग से पूर्ण पथों के लिए डीआईआर बदलते समय हमेशा इसे निर्दिष्ट करना चाहते हैं। – Mikhail

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