Navegue al directorio anterior en el símbolo del sistema de Windows


39

¿Hay algún comando / herramienta para navegar por el directorio anterior en el símbolo del sistema de Windows?

En linux usualmente uso

cd -

para navegación de directorio anterior.

Respuestas:


27

Guarde lo siguiente en, por ejemplo. mycd.baten 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 mycdlugar de cdcambiar directorios y unidades.

Alternativamente, use una doskeymacro:

C:\>doskey cd=mycd $*

La única advertencia es que si omite el espacio entre cdy ..o \, obtendrá la versión incorporada de cdno la doskeymacro ... y aún debe recordar no usar C:, D:etc. para cambiar la unidad.


Parece que no debería funcionar, pero lo hace. OLDPWD se configura correctamente.
Hugh Allen

2
+1 ¡Esto es bueno, funciona! pero doloroso de usar mycd (o whtevr)
ukanth

@HughAllen puede hacer una macro doskey para cd \ y cd .. doskey cd \ = cd \ o doskey cd \ = c: \ mycd.bat \ doskey C: = c: \ mycd.bat C:
barlop

Ese bate fallará para c: \ blah.bat% USERPROFILE% (entonces cd o cdd% USERPROFILE% fallará). Para solucionarlo, cambie las comillas simples por comillas dobles.
barlop

39

Puedes usar pushd y popd:

C: \ WINDOWS> pushd \
C: \> popd
C: \ VENTANAS>

Gracias John, pero esto no es exactamente lo que estoy buscando.
ukanth

2
Es exactamente lo que quiero para mis scripts por lotes, gracias. Incluso cambia las unidades sin necesidad del modificador \ d
Deebster

2
Advertencia Con pushd/popdusted debe considerar la posibilidad de errores . En una secuencia de comandos, cuando pushdun directorio que no existe no finalizará en la pila, pero cuando popdsalga 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.
Hastur

4

si está ejecutando el archivo por lotes, puede usar

  cd /D  %~dp0

Esto volverá a la ruta original desde donde se ejecutó el archivo por lotes


4

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.execonstrucciones, 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                             
$ 

3

Hay un cmdclon de software gratuito con características adicionales que incluye la cd -llamada Take Command Console LE .

texto alternativo


Esto no funciona
2010

2
@TiNS: OK, acabo de probarlo y funcionó para mí. ¿Qué hizo por ti?
Hugh Allen

Lo intenté con la consola (desde la ventana principal)
2010

1
@TiNS: No tengo claro lo que hiciste, pero ¿tal vez esta captura de pantalla te ayudará? (respuesta actualizada)
Hugh Allen

1

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.



0

Lo que hago es

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%
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.