Есть ли команда / инструмент для навигации по предыдущему каталогу в командной строке Windows?
В Linux обычно используют
cd -
для предыдущей навигации по каталогу.
Есть ли команда / инструмент для навигации по предыдущему каталогу в командной строке Windows?
В Linux обычно используют
cd -
для предыдущей навигации по каталогу.
Вы можете использовать pushd и popd:
C:\WINDOWS>pushd \ C:\>popd C:\WINDOWS>
Сохраните следующее, например. 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:
и т.д. Для изменения привод.
Если вам нужно точное поведение 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
$
если вы запускаете командный файл, вы можете использовать
cd /D %~dp0
Это вернется к исходному пути, откуда был запущен командный файл
Есть бесплатный клон cmd
с дополнительными функциями, включая cd -
под названием Take Command Console LE.
В зависимости от вашей цели, вы можете просто начать новый сеанс cmd, выполнив команду «cmd», переместить каталог и сделать все, что вы хотите, а затем, когда вы выполните команду «exit», чтобы выйти из сеанса, вы вернетесь в каталог, в котором вы находились, когда Вы начали новую сессию.
Принятый ответ очень хорош для требования. Хотя мне часто приходится переключаться между многими недавними каталогами, а не просто двумя (текущими и предыдущими).
Поэтому я недавно сделал пакет, чтобы облегчить мою повседневную работу. https://gist.github.com/programus/2d2738b2a746140186f7738b678bdcec
Что я делаю
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%