विंडोज़ कमांड प्रॉम्प्ट में पिछली निर्देशिका पर नेविगेट करें


39

क्या विंडोज़ कमांड प्रॉम्प्ट में पिछली निर्देशिका को नेविगेट करने के लिए कोई कमांड / टूल है?

आमतौर पर लिनक्स में उपयोग करते हैं

cd -

पिछली निर्देशिका नेविगेशन के लिए।

जवाबों:


27

उदाहरण के लिए निम्न को सहेजें। 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:परिवर्तन ड्राइव करने के लिए आदि।


ऐसा लगता है कि यह काम नहीं करना चाहिए, लेकिन यह करता है। OLDPWD सही ढंग से सेट हो जाता है।
ह्यू एलेन

2
+1 यह अच्छा है, यह काम करता है! लेकिन mycd (या whtevr) का उपयोग करने के लिए दर्दनाक
उकंठ

@HughAllen सीडी और सीडी के लिए एक doskey मैक्रो बना सकता है .. doskey cd \ = cd \ or doskey cd \ = c: \ mycd.bat \ doskey C: = c = \ mycd.bat C:
barlop

वह बल्ला c: \ blah.bat% USERPROFILE% (इसलिए cd या cdd% USERPROFILE% विफल होगा) के लिए विफल हो जाएगा। फिक्स करने के लिए सिंगल कोट्स को डबल कोट्स में बदलें।
बार्लॉप

39

आप पुशड और पॉप का उपयोग कर सकते हैं:

C: \ WINDOWS> pushd \
C: \> popd
सी: \ WINDOWS>

Thx जॉन, लेकिन यह वास्तव में मैं क्या देख रहा हूँ नहीं है।
उकांत १

2
यह बिल्कुल वही है जो मैं अपने बैच स्क्रिप्ट के लिए चाहता हूं, धन्यवाद। यहां तक ​​कि यह ड्राइव को बिना डी-स्विच के भी बदल देता है
डेबस्टर

2
चेतावनी के साथ 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 * आप ए में विश्वास करते हैं ... लेकिन बहुत देर हो चुकी है, आपके घर की सारी निर्देशिका समाप्त हो गई है।
हस्त्तूर

4

यदि आप बैच फ़ाइल चला रहे हैं तो आप उपयोग कर सकते हैं

  cd /D  %~dp0

यह उस मूल पथ पर वापस जाएगा जहां से बैच फ़ाइल चलाई गई थी


4

यदि आप बैश का सटीक व्यवहार चाहते हैं, तो बैश का उपयोग क्यों न करें? मेरे पास साइबरविन स्थापित है और यह बहुत अच्छा है। यह आपको इसके यूनिक्स उपकरणों से नहीं चिपकाता है - यह खुशी से किसी भी विंडोज़ को निष्पादन योग्य कहेगा। के लिए cmd.exebuiltins आप एक उपनाम बना सकते हैं:

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                             
$ 

3

वहाँ एक फ्रीवेयर है cmdसहित अतिरिक्त सुविधाओं के साथ क्लोन cd -कहा जाता लें कमान कंसोल ले

वैकल्पिक शब्द


यह काम नहीं करता है
उकंठ

2
@ टीआईएनएस: ओके मैंने अभी इसकी कोशिश की और इसने मेरे लिए काम किया। इसने तुम्हारे लिए क्या किया?
ह्यूग एलन

मैं (मुख्य विंडो से) कंसोल के साथ करने की कोशिश की
ukanth

1
@TiNS: आपने जो किया उस पर मैं स्पष्ट नहीं हूं, लेकिन शायद यह स्क्रीनशॉट मदद करेगा? (उत्तर अद्यतन)
ह्यू एलेन

1

आपका लक्ष्य क्या है इसके आधार पर, आप बस 'cmd' कर, एक नया cmd सत्र शुरू कर सकते हैं, निर्देशिका को स्थानांतरित कर सकते हैं और जो चाहें कर सकते हैं, जब आप सत्र से बाहर निकलने के लिए 'बाहर निकलें' करते हैं तो आप उस निर्देशिका में वापस आ जाएंगे जब आप थे आपने नया सत्र शुरू किया।


1

आवश्यकता के लिए स्वीकृत उत्तर बहुत शानदार है। जबकि मुझे अक्सर सिर्फ दो (वर्तमान और पिछले) के बजाय कई हालिया निर्देशिकाओं के बीच स्विच करना पड़ता है।

इसलिए मैंने हाल ही में अपना दैनिक कार्य आसान बनाने के लिए एक बैच बनाया। https://gist.github.com/programus/2d2738b2a746140186f7738b678bdcec


यह टाइप करना आसान है cdx :। धन्यवाद! यह ऊपर उत्कीर्ण उत्तर होना चाहिए।
एंड्रीडब्ल्यूडी

0

मैं क्या करता हूं

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%
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.