web-dev-qa-db-fra.com

Accéder au répertoire précédent de commande Windows

Existe-t-il une commande/un outil permettant de parcourir le répertoire précédent dans l'invite de commande de Windows?

Sous Linux, utilisez habituellement

cd -

pour la navigation précédente dans le répertoire.

36
ukanth

Enregistrez les éléments suivants dans, par exemple. mycd.bat quelque part dans votre chemin:

@echo off
if '%*'=='' cd & exit /b
if '%*'=='-' (
    cd /d %OLDPWD%
    set OLDPWD=%cd%
) else (
    cd /d %*
    if not errorlevel 1 set OLDPWD=%cd%
)

Pensez toujours à utiliser mycd au lieu de cd pour modifier les répertoires et les lecteurs.

Sinon, utilisez une macro doskey:

C:\>doskey cd=mycd $*

Le seul inconvénient est que si vous omettez l'espace entre cd et .. ou \, vous obtiendrez la version intégrée de cd et non la macro doskey ... et vous devez toujours vous rappeler de ne pas utiliser C:, D:, etc. pour changer de lecteur.

23
Hugh Allen

Vous pouvez utiliser pushd et popd:

C:\WINDOWS> pushd\
 C: \> popd 
 C:\WINDOWS>
34
John T

si vous utilisez le fichier de commandes, vous pouvez utiliser

  cd /D  %~dp0

Cela vous ramènera au chemin d'origine à partir duquel le fichier de commandes a été exécuté.

4
ggonsalv

Si vous voulez le comportement exact de bash, pourquoi ne pas utiliser bash? J'ai cygwin installé et c'est très agréable. Cela ne vous oblige pas à vous en tenir à ses outils UNIX - il appellera volontiers tous les exécutables Windows. Pour cmd.exe, vous pouvez créer 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                             
$ 
4
Hugh Allen

Il existe un clone gratuit cmd avec des fonctionnalités supplémentaires, dont cd - appelé Prenez Command Console LE .

alt text

3
Hugh Allen

En fonction de votre objectif, vous pouvez simplement démarrer une nouvelle session cmd en effectuant "cmd", déplacer un répertoire et faire ce que vous voulez. Lorsque vous quittez cette session, vous quittez la session et vous revenez dans le répertoire où vous étiez. vous avez commencé la nouvelle session.

1
user210211

La réponse acceptée est très bonne pour l'exigence. Bien que je doive souvent basculer entre plusieurs annuaires récents au lieu de seulement deux (actuel et précédent).

J'ai donc récemment fabriqué un lot pour faciliter mes tâches quotidiennes. https://Gist.github.com/programus/2d2738b2a746140186f7738b678bdcec

1
Programus

Ce que je fais c'est

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%
0
amphibient