33

Есть ли команда / инструмент для навигации по предыдущему каталогу в командной строке Windows?

В Linux обычно используют

cd -

для предыдущей навигации по каталогу.

8 ответов8

33

Вы можете использовать pushd и popd:

C:\WINDOWS>pushd \
C:\>popd
C:\WINDOWS>
21

Сохраните следующее, например. 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: и т.д. Для изменения привод.

4

Если вам нужно точное поведение bash, почему бы не использовать bash? У меня установлен Cygwin, и это очень приятно. Он не заставляет вас придерживаться инструментов UNIX - он с радостью вызовет любой исполняемый файл Windows. Для встроенных cmd.exe вы можете создать псевдоним:

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

если вы запускаете командный файл, вы можете использовать

  cd /D  %~dp0

Это вернется к исходному пути, откуда был запущен командный файл

3

Есть бесплатный клон cmd с дополнительными функциями, включая cd - под названием Take Command Console LE.

альтернативный текст

1

В зависимости от вашей цели, вы можете просто начать новый сеанс cmd, выполнив команду «cmd», переместить каталог и сделать все, что вы хотите, а затем, когда вы выполните команду «exit», чтобы выйти из сеанса, вы вернетесь в каталог, в котором вы находились, когда Вы начали новую сессию.

1

Принятый ответ очень хорош для требования. Хотя мне часто приходится переключаться между многими недавними каталогами, а не просто двумя (текущими и предыдущими).

Поэтому я недавно сделал пакет, чтобы облегчить мою повседневную работу. https://gist.github.com/programus/2d2738b2a746140186f7738b678bdcec

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%

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .