Actualización: mejor versión 18 de julio de 2019.
Resumen final, aunque de todos modos pasé a PowerShell para la mayoría de las consolas de Windows, pero decidí resolver este viejo problema de cmd, tuve que usar una consola de cmd hoy, y la falta de esta característica realmente me sorprendió. Finalmente, este también funciona con espacios, donde mi respuesta anterior fallaría.
Además, este ahora también puede usar ~ como prefijo para otras subcarpetas de inicio, y también intercambia barras diagonales hacia barras diagonales inversas. Asi que aqui esta;
Paso 1. Cree estas macros de doskey , en algún lugar donde se recojan cada vez que se inicia cmd.
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
Paso 2. Crea el archivo cdtilde.bat y colócalo en algún lugar de tu RUTA
@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%"
Probado bien con;
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")
Ah, también permite citas flojas, lo que me pareció útil, incluso cuando hay espacios en los nombres de ruta de la carpeta, ya que envuelve todos los argumentos como si fuera una cadena larga. Lo que significa que solo una cita inicial también funciona, o completamente sin comillas también funciona.
Ahora se puede ignorar todo lo demás a continuación, se deja por razones históricas, por lo que no vuelvo a cometer los mismos errores
actualización anterior 19 de octubre de 2018.
En caso de que alguien más haya intentado mi enfoque, mi respuesta original a continuación no manejó espacios, por ejemplo, lo siguiente falló.
> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.
Creo que debe haber una manera de resolver eso. Publicaré nuevamente si puedo mejorar mi respuesta. (ver arriba, finalmente conseguí que todo funcionara como quería).
Mi respuesta original, todavía necesitaba trabajo ... 7 de octubre de 2018.
Solo estaba tratando de hacerlo hoy, y creo que lo obtuve, esto es lo que creo que funciona bien;
Primero, algunas macros de doskey ;
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
y luego un archivo bat en mi camino;
cdtilde.bat
@echo off
if ["%1"]==["~"] (
chdir /D "%USERPROFILE%"
) else (
chdir /D %*
)
Todo esto parece funcionar bien;
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)