जवाबों:
उदाहरण के लिए निम्न को सहेजें। mycd.bat
आपके रास्ते में कहीं:
@echo off
if '%*'=='' cd & exit /b
if '%*'=='-' (
cd /d %OLDPWD%
set OLDPWD=%cd%
) else (
cd /d %*
if not errorlevel 1 set OLDPWD=%cd%
)
फिर हमेशा डायरेक्ट्री और ड्राइव बदलने के mycd
बजाय उपयोग करना याद रखें cd
।
वैकल्पिक रूप से, एक doskey
मैक्रो का उपयोग करें :
C:\>doskey cd=mycd $*
केवल चेतावनी आप के बीच की जगह को छोड़ देते हैं, तो है cd
और ..
या \
, आप में से निर्मित संस्करण मिल जाएगा cd
नहीं doskey
मैक्रो ... और आप अभी भी उपयोग करने के लिए नहीं याद C:
, D:
परिवर्तन ड्राइव करने के लिए आदि।
आप पुशड और पॉप का उपयोग कर सकते हैं:
C: \ WINDOWS> pushd \ C: \> popd सी: \ WINDOWS>
pushd/popd
आप त्रुटियों की संभावना विचारशील करने के लिए है । एक स्क्रिप्ट में जब आप pushd
एक निर्देशिका जो मौजूद नहीं होती है, वह स्टैक में समाप्त नहीं होगी, लेकिन जब आप popd
एक स्तर से बाहर निकलेंगे: चर सही ढंग से नहीं भरा, मिसप्रिंट, गलत ड्राइव ... आप एक निर्देशिका में अलग होना चाहते हैं जिस में आप हैं, गंभीर समस्या के साथ जैसे कि जब आप फ़ाइलों / डायरियों को हटाते हैं। आपदा (लिनक्स सिंटैक्स): cd $HOME; mkdir A; pushd A; mkdir B; pushd D; do stuff (in A, you believe in B); popd; rm -rf *
आप ए में विश्वास करते हैं ... लेकिन बहुत देर हो चुकी है, आपके घर की सारी निर्देशिका समाप्त हो गई है।
यदि आप बैश का सटीक व्यवहार चाहते हैं, तो बैश का उपयोग क्यों न करें? मेरे पास साइबरविन स्थापित है और यह बहुत अच्छा है। यह आपको इसके यूनिक्स उपकरणों से नहीं चिपकाता है - यह खुशी से किसी भी विंडोज़ को निष्पादन योग्य कहेगा। के लिए cmd.exe
builtins आप एक उपनाम बना सकते हैं:
hugh@comp07 ~/testdir
$ alias cm='cmd /c'
hugh@comp07 ~/testdir
$ cm dir
Volume in drive C has no label.
Volume Serial Number is AC2A-8378
Directory of C:\cygwin\home\hugh\testdir
18/05/2010 02:02 PM <DIR> .
18/05/2010 02:02 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 1,365,155,840 bytes free
hugh@comp07 ~/testdir
$
वहाँ एक फ्रीवेयर है cmd
सहित अतिरिक्त सुविधाओं के साथ क्लोन cd -
कहा जाता लें कमान कंसोल ले ।
आपका लक्ष्य क्या है इसके आधार पर, आप बस 'cmd' कर, एक नया cmd सत्र शुरू कर सकते हैं, निर्देशिका को स्थानांतरित कर सकते हैं और जो चाहें कर सकते हैं, जब आप सत्र से बाहर निकलने के लिए 'बाहर निकलें' करते हैं तो आप उस निर्देशिका में वापस आ जाएंगे जब आप थे आपने नया सत्र शुरू किया।
आवश्यकता के लिए स्वीकृत उत्तर बहुत शानदार है। जबकि मुझे अक्सर सिर्फ दो (वर्तमान और पिछले) के बजाय कई हालिया निर्देशिकाओं के बीच स्विच करना पड़ता है।
इसलिए मैंने हाल ही में अपना दैनिक कार्य आसान बनाने के लिए एक बैच बनाया। https://gist.github.com/programus/2d2738b2a746140186f7738b678bdcec
cdx :
। धन्यवाद! यह ऊपर उत्कीर्ण उत्तर होना चाहिए।
मैं क्या करता हूं
rem capture the path of the initial dir
set RET_DIR=%CD%
rem do stuff...
rem and then return to the initial dir
cd %RET_DIR%