¿Hay un comando de acceso directo en el símbolo del sistema de Windows para llegar al directorio de inicio del usuario actual como en Linux?

105

Estoy acostumbrado a usar

cd ~

para ir directamente a mi directorio de inicio. En el símbolo del sistema de Windows tengo que hacer

cd Users\username

para llegar allí ¿Hay un atajo como el de Linux? Sería bueno si pudiera llegar haciendo

cd username

¿Es posible algo así en Windows Vista?

clasificador
fuente
77
En Unix, no hay necesidad de tilde. cdsin argumentos cambiará a su directorio de inicio.
coneslayer
había una pregunta como esta aquí en su, no puedo encontrarla.
akira
1
@coneslayer, lo sé, pero para mover un archivo de un directorio a otro se usa la tilde.
clasificador
Tan simple comocd %userprofile%
subtleseeker
Puede usar Windows Power Shell (en Win XP y versiones posteriores) que le permite usar ~ para el directorio de inicio. Ver también ----> stackoverflow.com/questions/9228950/…
franz1

Respuestas:

20

Siempre puede colocar un archivo .bat en algún lugar de su% PATH% que cambia la ruta por usted.

dertoni
fuente
154

Sí, puede usar %HOMEPATH%, que es la ruta completa del directorio de inicio del usuario.

Hay bastantes otras variables útiles disponibles, como %OS%(Sistema operativo) o %WINDIR%(Directorio del sistema de Windows). Consulte Wikipedia: Variables de entorno para obtener una lista.


Notas :

En realidad, las cosas son un poco complicadas (como siempre). %HOMEPATH%solo contiene la ruta, sin la letra de la unidad, por lo que no funcionará cddesde una unidad diferente. También se puede utilizar %USERPROFILE%, lo que hace contener la letra de unidad, y es generalmente el mismo directorio que %HOMEPATH%.

Los valores de estas variables, y cuál es el adecuado para usted, dependerán de la versión de Windows y de cualquier cambio realizado por un administrador, ya que sus valores pueden ser diferentes (consulte, por ejemplo, la pregunta Diferencia entre perfil y ruta de inicio ).

sleske
fuente
55
Esta es la respuesta más correcta, en mi opinión, porque no se basa en rutas codificadas y en ningún enlace loco del sistema de archivos que pueda haber entre ellos.
Ed Orsi
3
Esta es la respuesta correcta.
Frederik Krautwald
Esto me salvó la vida! Después de mirar muchas otras respuestas de diferentes preguntas. ¡De nuevo! Esto funcionó para mí y debería ser marcado como la respuesta a esta pregunta.
Patricia
@ MissLucy: Estoy feliz de que te haya ayudado. En cuanto a aceptar una respuesta: Eso depende del OP para decidir. Puede agregar un comentario a la pregunta para alertarlos.
sleske
use% USERPROFILE% en su lugar.
JJS
22

Otras dos opciones que se pueden agregar a un script y ejecutar automáticamente de una manera similar a la respuesta de BillP3rd.

Son dos personajes más pero ...

SET ~=%HOMEPATH%    
CD %~%

o...

CD %~%\Desktop

O...

doskey ~=cd %homepath%
~

Por supuesto, no puede usar esto ~en las rutas, pero como un rápido "saltar a mi directorio de inicio" ~ Enteres bastante rápido.

Carl
fuente
1
¿Me estás tomando el pelo con lo de doskey? Ahora tengo un acceso directo de char único a cualquier carpeta en la que me siento como cd. Esta debería ser la respuesta n. ° 1.
Andrew
9

Creé un archivo .cmd en un directorio en mi ruta y lo llamé "cd ~ .cmd". Sus contenidos son:

@cd %HOMEPATH%

Entonces puedo escribir "cd ~" desde cualquier lugar para acceder a mi directorio de inicio. No es lo mismo que "cd ~" (tenga en cuenta el espacio que falta), pero lo suficientemente cerca para mí.

Jaime de los Hoyos M.
fuente
2
La respuesta más inteligente. La combinación de la suya con esta respuesta de Kenny Evitt ofrece la mejor solución.
Sнаӽошƒаӽ
7

La respuesta de sleske es casi exactamente correcta, pero no siempre funciona.

Si su directorio de inicio está en una configuración de recurso compartido de red como una unidad asignada, ejecute lo siguiente independientemente de la unidad del directorio actual:

cd /D %HOMEDRIVE%%HOMEPATH%

El /Dinterruptor es necesario para permitir cdcambiar las unidades.

Kenny Evitt
fuente
5

¿Hay un atajo para C:\Users\<current user>\?

No hay atajo directo.

Hay un par de soluciones diferentes (ver más abajo).

  1. Use una variable de entorno junto con cdocd /d

  2. Use substo net usepara crear una asignación a otra letra de unidad.

  3. Instalar cygwiny usarbash

  4. Uso powershell- soporta powershell~

La última solución es probablemente la más simple si está preparado para usar en powershelllugar de cmd.


Solución 1: utilice una variable de entorno junto con cdocd /d

Si desea cambiar a este directorio de forma regular, ejecute el siguiente comando:

setx DOCS %USERPROFILE%

Esto establecerá permanentemente la variable de entorno DOCS, pero para usarla, primero debe iniciar un nuevo cmdshell, luego la variable está definida y lista para usar:

F:\test>echo %DOCS%
C:\Users\DavidPostill\

Para cambiar el directorio desde cualquier ubicación, use el siguiente comando:

cd /d %DOCS%

Si ya está en la unidad c:, puede usar:

cd %DOCS%

Cree un archivo por lotes ( docs.cmd) y colóquelo en algún lugar de su PATH.

docs.cmd:

@echo off
cd /d %DOCS%

Luego puede escribir docsindependientemente de su ubicación actual y lo llevará aC:\Users\<current user>


Solución 2: Use substo net usepara crear una asignación a otra letra de unidad.

Puedes usar subst:

subst x: %USERPROFILE%

Y entonces

x:

Lamentablemente, las asignaciones de unidades no persisten en los reinicios.

net use persistirá a través de reinicios, por ejemplo:

net use x: "\\computerName\c$\pathName" /persistent:yes

Consulte las respuestas en ¿Cómo hacer que la asignación SUBST sea persistente en todos los reinicios? para instrucciones detalladas


Solución 3: instalar cygwiny usarbash

Podría considerar instalar cygwin :

Cygwin es:

  • Una gran colección de herramientas GNU y de código abierto que proporcionan una funcionalidad similar a una distribución de Linux en Windows.

Una vez que haya instalado cygwin, puede ejecutarlo bashen un terminal cygwin y configurar la variable de entorno bash HOMEsegún corresponda.

Las alternativas a cygwin incluyen msys (MingW) :

MSYS es una colección de utilidades GNU como bash, make, gawk y grep para permitir la creación de aplicaciones y programas que dependen de las herramientas tradicionales de UNIX. Está destinado a complementar MinGW y las deficiencias de la capa de cmd.

Y Git para Windows :

Git para Windows proporciona una emulación BASH utilizada para ejecutar Git desde la línea de comandos. * Los usuarios de NIX deben sentirse como en casa, ya que la emulación BASH se comporta como el comando "git" en entornos LINUX y UNIX.


Solución 4: uso powershell

Como se señaló en un comentario sobre otra pregunta de SBI, PowerShell admite ~y puede escribir:

cd ~

Otras lecturas

  • Un índice AZ de la línea de comando CMD de Windows : una excelente referencia para todo lo relacionado con la línea cmd de Windows.
  • cd - Cambiar directorio - Seleccionar una carpeta (y unidad)
  • setx : establezca las variables de entorno de forma permanente, SETX se puede usar para establecer las Variables de entorno para la máquina (HKLM) o el usuario actualmente conectado (HKCU).
  • subst - Sustituye una letra de unidad por una red o ruta local.
DavidPostill
fuente
Si en Powershell hay dos formas adicionales: cd $HOMEycd $env:HOMEPATH
Dirk Thannhäuser
3

No sé si es una característica de nuestro script de inicio de sesión de trabajo o un valor predeterminado de Windows, pero puedo usar cd% HOMEPATH% para lograr eso, donde HOMEPATH es una variable de entorno.

Rob Cowell
fuente
Veo. Todavía se necesita mucho para escribir% HOMEPATH%. Además, no puede completarlo automáticamente. ¿Hay alguna manera de hacer que mi nombre de usuario sea igual a% HOMEPATH% haciendo un nuevo comando en cmd.exe?
clasificador
1

Si desea que todos los mensajes de comando del usuario comiencen en su directorio "principal", cree la siguiente clave de registro como un Valor de cadena expandible (sin comillas, por supuesto):

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"

Si solo desea que sus indicaciones de comando lo hagan:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"

Es una práctica mantener una carpeta ac: \ Scripts en la que guardo un archivo por lotes de tipo "autoexec" que invoco a través de esta clave.

BillP3rd
fuente
Cuidado, esto romperá bower y npm (y Visual Studio) ...
Dilema del
1

Me doy cuenta de que esta es una pregunta que se hizo hace mucho tiempo, pero solo para el registro. Instalar clink, esto extiende su símbolo del sistema de muchas maneras. Sí, es más pesado que las soluciones anteriores, pero hace que la ventana cmd se comporte mucho mejor.

THBBFT
fuente
clink == potente edición de línea de comandos de estilo Bash para cmd.exe
sospechoso
Correcto, y el punto es que ~ se resuelve en el directorio Usuario \ {usuario}.
THBBFT
0

Windows realmente se ha convertido en 'Todo sobre la interfaz gráfica de usuario', por lo que en su caso solo obtendría las herramientas que desea en lugar de tratar de 'doblar' el sistema a su voluntad ... Las herramientas MinGW son una excelente colección de algunos de los herramientas GNU más utilizadas ... Lo recomiendo si eres un fanático de nix en Win ...

http://www.mingw.org/wiki/MSYS

Eddie B
fuente
0

Usé un mejor terminal ( cmder ) para este propósito. Se ha construido en alias y es muy fácil de usar. Solo lea la documentación sobre Alias aquí .

Don camilo
fuente