batch file - बैच फ़ाइल में वर्तमान निर्देशिका क्या है?




batch-file directory (4)

मैं एक प्रोग्राम स्वचालित करने के लिए कुछ बैच फाइलें बनाना चाहता हूं।

मेरा सवाल यह है कि जब मैं बैच फ़ाइल बनाता हूं, तो वर्तमान निर्देशिका क्या होती है? क्या यह निर्देशिका है जहां फ़ाइल स्थित है या यह वही निर्देशिका है जो कमांड प्रॉम्प्ट में दिखाई देती है, या कुछ और?


अपनी बैच फ़ाइल के भीतर से:

  • %cd% वर्तमान कार्यशील निर्देशिका (चर) को संदर्भित करता है
  • %~dp0 बैच फ़ाइल की निर्देशिका (स्थिर) के पूर्ण पथ को संदर्भित करता है
  • %~dpnx0 बैच निर्देशिका और फ़ाइल नाम (स्थिर) के पूर्ण पथ को संदर्भित करता है।

बैच फ़ाइल में,% cd% वर्तमान निर्देशिका के लिए सबसे अधिक उपयोग किया जाने वाला कमांड है, हालांकि आप अपना खुद का चर सेट कर सकते हैं:

set mypath=%cd%
echo %mypath% (where %mypath% is the current directory that the batch file is sitting in)

तो कहें कि आप Myprog.exe खोलना चाहते थे। यदि यह एक ही फ़ोल्डर में था, तो आप कमांड का उपयोग करेंगे:

start %mypath%\Myprog.exe

यह वर्तमान फ़ोल्डर से Myprog खोल देगा।

दूसरा विकल्प सी में निर्देशिका बनाना है: जिसे AutomatePrograms कहा जाता है। फिर, आप अपनी फ़ाइलों को उस फ़ोल्डर में स्थानांतरित करते हैं, फिर आप निम्न आदेश का उपयोग करके उन्हें खोल सकते हैं:

start "" "C:\AutomatePrograms\Myprog1.exe"
start "" "C:\AutomatePrograms\Myprog2.exe"
start "" "C:\AutomatePrograms\Myprog3.exe"

यह आमतौर पर वह निर्देशिका होती है जिसमें बैच फ़ाइल शुरू होती है, लेकिन यदि आप शॉर्टकट से बैच फ़ाइल प्रारंभ करते हैं, तो एक अलग प्रारंभिक निर्देशिका दी जा सकती है। साथ ही, जब आप cmd में होते हैं, और आपकी वर्तमान निर्देशिका c:\dir3 , तो आप अभी भी c:\dir3 का उपयोग कर बैच फ़ाइल प्रारंभ कर सकते हैं, इस स्थिति में, वर्तमान निर्देशिका c:\dir3


यह वह निर्देशिका है जहां से आप अपनी बैच फ़ाइल निष्पादित करने के लिए कमांड चलाते हैं।

जैसा कि ऊपर दिए गए उत्तरों में बताया गया है, आप निम्न स्क्रिप्ट को अपनी स्क्रिप्ट में सत्यापित करने के लिए जोड़ सकते हैं:

> set current_dir=%cd%
> echo %current_dir%  





directory