Respuestas:
Guarde lo siguiente en, por ejemplo. mycd.bat
en algún lugar de tu camino:
@echo off
if '%*'=='' cd & exit /b
if '%*'=='-' (
cd /d %OLDPWD%
set OLDPWD=%cd%
) else (
cd /d %*
if not errorlevel 1 set OLDPWD=%cd%
)
Luego, recuerde siempre usar en mycd
lugar de cd
cambiar directorios y unidades.
Alternativamente, use una doskey
macro:
C:\>doskey cd=mycd $*
La única advertencia es que si omite el espacio entre cd
y ..
o \
, obtendrá la versión incorporada de cd
no la doskey
macro ... y aún debe recordar no usar C:
, D:
etc. para cambiar la unidad.
Puedes usar pushd y popd:
C: \ WINDOWS> pushd \ C: \> popd C: \ VENTANAS>
pushd/popd
usted debe considerar la posibilidad de errores . En una secuencia de comandos, cuando pushd
un directorio que no existe no finalizará en la pila, pero cuando popd
salga de un nivel: variable no rellenada correctamente, error de impresión, unidad incorrecta ... Cree que está en un directorio diferente desde el que está, con un problema grave, por ejemplo, cuando elimina archivos / directorios. Desastre (sintaxis de Linux): cd $HOME; mkdir A; pushd A; mkdir B; pushd D; do stuff (in A, you believe in B); popd; rm -rf *
cree en A pero ... demasiado tarde, todo su directorio de inicio se ha ido.
Si desea el comportamiento exacto de bash, ¿por qué no usar bash? Tengo instalado Cygwin y es muy agradable. No te hace apegarte a sus herramientas UNIX, felizmente llamará a cualquier Windows ejecutable. Para las cmd.exe
construcciones, puede crear un alias:
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
$
Hay un cmd
clon de software gratuito con características adicionales que incluye la cd -
llamada Take Command Console LE .
Dependiendo de cuál sea su objetivo, puede comenzar una nueva sesión de cmd haciendo 'cmd', mover el directorio y hacer lo que quiera, cuando luego 'salga' para abandonar la sesión, volverá al directorio en el que estaba cuando comenzaste la nueva sesión.
La respuesta aceptada es muy buena para el requisito. Si bien a menudo tengo que cambiar entre muchos directorios recientes en lugar de solo dos (actual y anterior).
Así que recientemente hice un lote para facilitar mis trabajos diarios. https://gist.github.com/programus/2d2738b2a746140186f7738b678bdcec
cdx :
. ¡Gracias! Debería ser la respuesta más votada.