Mise à jour - meilleure version 18 juillet 2019.
Résumé final, même si je suis passé à PowerShell pour la plupart des travaux sur console Windows, mais j'ai décidé de terminer ce vieux problème de cmd, j'ai dû utiliser une console cmd aujourd'hui, et le manque de cette fonctionnalité m'a vraiment frappé. Celui-ci fonctionne enfin avec les espaces également, où ma réponse précédente échouerait.
De plus, celui-ci peut désormais également utiliser ~ comme préfixe pour d'autres sous-dossiers personnels, et il échange également les barres obliques vers les barres obliques inverses. Le voici donc;
Étape 1. Créez ces macros doskey , quelque part, elles sont récupérées à chaque démarrage de cmd.
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
Étape 2. Créez le fichier cdtilde.bat et placez-le quelque part dans votre PATH
@echo off
set dirname=""
set dirname=%*
set orig_dirname=%*
:: remove quotes - will re-attach later.
set dirname=%dirname:\"=%
set dirname=%dirname:/"=%
set dirname=%dirname:"=%
:: restore dirnames that contained only "/"
if "%dirname%"=="" set dirname=%orig_dirname:"=%
:: strip trailing slash, if longer than 3
if defined dirname if NOT "%dirname:~3%"=="" (
if "%dirname:~-1%"=="\" set dirname="%dirname:~0,-1%"
if "%dirname:~-1%"=="/" set dirname="%dirname:~0,-1%"
)
set dirname=%dirname:"=%
:: if starts with ~, then replace ~ with userprofile path
if %dirname:~0,1%==~ (
set dirname="%USERPROFILE%%dirname:~1%"
)
set dirname=%dirname:"=%
:: replace forward-slashes with back-slashes
set dirname="%dirname:/=\%"
set dirname=%dirname:"=%
chdir /D "%dirname%"
Testé très bien avec;
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)
cd / (eg, root of C:)
cd ~/.config (eg, the .config folder under my home folder)
cd /Program Files (eg, "C:\Program Files")
cd C:/Program Files (eg, "C:\Program Files")
cd \Program Files (eg, "C:\Program Files")
cd C:\Program Files (eg, "C:\Program Files")
cd "C:\Program Files (eg, "C:\Program Files")
cd "C:\Program Files" (eg, "C:\Program Files")
Oh, cela permet également des citations paresseuses, ce que j'ai trouvé utile, même lorsque les espaces sont dans les noms de chemin de dossier, car il encapsule tous les arguments comme s'il s'agissait d'une longue chaîne. Ce qui signifie que juste un devis initial fonctionne également, ou complètement sans devis.
Toutes les autres choses ci-dessous peuvent être ignorées maintenant, elles sont laissées pour des raisons historiques - donc je ne fais plus les mêmes erreurs
ancienne mise à jour du 19 octobre 2018.
Au cas où quelqu'un d'autre aurait essayé mon approche, ma réponse d'origine ci-dessous ne gérait pas les espaces, par exemple, ce qui suit a échoué.
> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.
Je pense qu'il doit y avoir un moyen de résoudre ce problème. Publiera à nouveau si je peux améliorer ma réponse. (voir ci-dessus, j'ai finalement tout fait fonctionner comme je le voulais.)
Ma réponse originale, avait encore besoin de travail ... 7 octobre 2018.
J'essayais juste de le faire aujourd'hui, et je pense que je l'ai, c'est ce que je pense qui fonctionne bien;
Tout d'abord, quelques macros doskey ;
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
puis un fichier bat sur mon chemin;
cdtilde.bat
@echo off
if ["%1"]==["~"] (
chdir /D "%USERPROFILE%"
) else (
chdir /D %*
)
Tout cela semble bien fonctionner;
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)