2013-04-08 20 views
7

मान लें कि मैं बैच फ़ाइल का उपयोग कर रहा हूं और बैच की उसी निर्देशिका में स्थित फ़ोल्डर को निर्देशित करना चाहता हूं। अगर मैं गलत नहीं हूं तो आप "% ~ dp0 \ whateverfoldername" लिखेंगे। लेकिन सिर्फ "। \ Whateverfoldername" लिखकर ऐसा नहीं किया जा सकता है? यदि हां, तो संबंधित कमांड का अंतर और/या लाभ क्या है?"% ~ dp0" और "। " के बीच अंतर?

+1

शायद आप कर सकते हैं। लेकिन अगर वर्तमान निर्देशिका ऐसी स्थिति नहीं है जहां आप उम्मीद करते हैं तो यह दुर्भाग्य से विफल हो जाएगा। –

+0

जो व्यवस्थापक के रूप में चलने का परिणाम होगा ... इस प्रकार आप नीचे क्या करते हैं RGuggisberg कहते हैं .. मुझे अब यह मिल गया है – user2259606

उत्तर

17
pushd %~dp0 

अक्सर मूल निर्देशिका में बदलने के लिए उपयोग किया जाता है, जिससे बैच शुरू किया गया था। यह नए ओएस में बहुत उपयोगी है जब उपयोगकर्ता 'व्यवस्थापक के रूप में चलाया जा सकता है' जो आपके लिए वर्तमान निर्देशिका को बदलता है! इसे कभी कोशिश करो। बस एक साधारण बल्ले

@echo off 
echo.CD=%CD% 
pushd %~dp0 
echo.CD=%CD% 
pause 

अब इसे चलाएं। अब Vista, Win 7, Win 8, 2008 सर्वर, या 2012 सर्वर पर इसे 'व्यवस्थापक के रूप में' चलाएं। देखें क्या होता है?

+0

ठीक है इससे बहुत मदद मिलती है, मैं देखता हूं कि डीपी 0 की आवश्यकता क्यों है। लेकिन पुशड और सीडी के बीच क्या अंतर है? – user2259606

+0

खुद का जवाब: पुश और सीडी के बीच का अंतर यह है कि पुशड पीओपीडी कमांड द्वारा उपयोग के लिए पिछले फ़ोल्डर/पथ को स्टोर करता है। पीओपीडी हाल ही में PUSHD कमांड द्वारा संग्रहीत पथ/फ़ोल्डर में निर्देशिका बदलता है। बूम। मैं तुमसे प्यार करता हूँ दोस्तों धन्यवाद! – user2259606

+1

यदि आपको किसी अन्य ड्राइव पर रूट को पार करने की आवश्यकता है, तो PUSHD सीमलेस के साथ काम करता है जबकि सीडी के साथ आपको या तो डीडी पैरामीटर या कॉल सीडी के साथ सीडी का उपयोग करने की आवश्यकता होगी और फिर ड्राइव नाम टाइप करें। –

3

".\ तो आप THAT निर्देशिका, नहीं निर्देशिका जिसमें बैच बसता था पर नजर रखेंगे, इसलिए यदि आप एक CD कमांड के साथ निर्देशिका बदल दिया है CURRENT निर्देशिका के संबंध में पता लगाने जाएगा।

वास्तव में, बैच फ़ाइलों को रखने के लिए \batch या शायद \belfry नामक एक अलग निर्देशिका बनाना सामान्य है। ,bat प्रदान किए गए प्रश्न path पर स्थित है, यह स्थित होगा। %dp0.bat का स्थान उपज करेगा।

+0

इसके अलावा, स्क्रिप्ट लॉन्च होने के तरीके के आधार पर कार्यशील निर्देशिका स्क्रिप्ट की मूल निर्देशिका से भिन्न हो सकती है। –

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