Questão Existe um comando de atalho no prompt de comando do Windows para chegar ao diretório home do usuário atual, como existe no Linux?


Estou acostumado a usar

cd ~

para ir direto ao meu diretório home. No prompt de comando do Windows eu tenho que fazer

cd Users\username

para chegar lá. Existe um atalho como o do Linux? Seria legal se eu pudesse chegar lá fazendo

cd username

É algo assim possível no Windows Vista?


89


origem


No Unix, não há necessidade do til. cd sem argumentos mudará para o seu diretório pessoal. - coneslayer
Houve uma pergunta como esta aqui no su, não consigo encontrá-lo. - akira
@coneslayer eu sei, mas para mover um arquivo de um diretório para outro você usa o til. - classer


Respostas:


Você sempre pode colocar um arquivo .bat em algum lugar em% PATH%, o que faz o caminho mudar para você.


17





Sim, você pode usar %HOMEPATH%, que é o caminho completo do diretório inicial do usuário.

Existem algumas outras variáveis ​​úteis disponíveis, como %OS% (Sistema operacional) ou %WINDIR% (Diretório do sistema Windows). Vejo wikipedia: valores ambientais para uma lista.


Notas:

Na verdade, as coisas são um pouco complicadas (como de costume). %HOMEPATH% contém apenas o caminho, sem a letra da unidade, por isso não funcionará cda partir de uma unidade diferente. Você também pode usar %USERPROFILE%, qual faz contém a letra da unidade e é geralmente o mesmo diretório %HOMEPATH%.

Os valores dessas variáveis ​​e qual é a certa para você dependerão da versão do Windows e de quaisquer alterações feitas por um administrador, pois seus valores podem ser diferentes (consulte, por exemplo, a pergunta Diferença entre perfil e caminho de casa ).


130



Esta é a resposta mais correta, na minha opinião, porque não depende de caminhos codificados e de quaisquer links de sistema de arquivos mal-intencionados que possam estar entre eles. - Ed Orsi
Essa é a resposta correta. - Frederik Krautwald
Isso salvou minha vida! Depois de olhar para muitas outras respostas de diferentes questões. Novamente! Isso funcionou para mim e deve ser o marcado como a resposta para esta pergunta. - Patricia
@MissLucy: Estou feliz que tenha ajudado você. Quanto a aceitar uma resposta: cabe ao OP decidir. Você pode adicionar um comentário à pergunta para alertá-los. - sleske
use% USERPROFILE% no lugar. - JJS


Duas outras opções, ambas podem ser adicionadas a um script e executadas automaticamente de maneira similar à resposta de BillP3rd.

São mais dois personagens, mas ...

SET ~=%HOMEPATH%    
CD %~%

ou...

CD %~%\Desktop

Ou...

doskey ~=cd %homepath%
~

Claro que você não pode usar isso ~ em caminhos, mas como um rápido "salto para o meu dir home" digitando ~  Entrar é bem rápido.


19





Eu criei um arquivo .cmd em um diretório no meu caminho e o chamei de "cd ~ .cmd". Seu conteúdo é:

@cd %HOMEPATH%

Então eu posso digitar "cd ~" de qualquer lugar para chegar ao meu diretório pessoal. Não é o mesmo que "cd ~" (note o espaço ausente), mas perto o suficiente para mim.


7



Resposta mais inteligente. Combinando o seu com esta resposta por Kenny Evitt dá a melhor solução. - Sнаđошƒаӽ


resposta de sleske está quase certo, mas nem sempre funciona.

Se o diretório inicial estiver em uma configuração de compartilhamento de rede como uma unidade mapeada, execute o seguinte, independentemente da unidade do diretório atual:

cd /D %HOMEDRIVE%%HOMEPATH%

o /D interruptor é necessário para permitir cd para mudar de disco.


6



Que tal cd / d% homedrive %% homepath% como um one-liner? - james


Existe um atalho para C:\Users\<current user>\?

Não há atalho direto.

Existem algumas soluções diferentes (veja abaixo).

  1. Use uma variável de ambiente junto com cd ou cd /d

  2. Usar subst ou net use para criar um mapeamento para outra letra de unidade.

  3. Instalar cygwin E use bash

  4. Usar powershell - suporte a powershell ~

A última solução é provavelmente a mais simples se você estiver preparado para usar powershell ao invés de cmd.


Solução 1: use uma variável de ambiente junto com cd ou cd /d

Se você quiser mudar para este diretório regularmente, execute o seguinte comando:

setx DOCS %USERPROFILE%

Isso irá definir permanentemente a variável de ambiente DOCS, mas para usá-lo você precisa primeiro iniciar um novo cmdshell, a variável está definida e pronta para uso:

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

Para alterar o diretório de qualquer local, use o seguinte comando:

cd /d %DOCS%

Se você já estiver dirigindo c: você pode simplesmente usar:

cd %DOCS%

Crie um arquivo em lotes (docs.cmd) e colocá-lo em algum lugar em seu PATH.

docs.cmd:

@echo off
cd /d %DOCS%

Você pode então digitar docs independentemente da sua localização atual e ele irá levá-lo para C:\Users\<current user>


Solução 2: Use subst ou net use para criar um mapeamento para outra letra de unidade.

Você pode usar subst:

subst x: %USERPROFILE%

E depois

x:

Infelizmente, os mapeamentos de unidade não persistem durante as reinicializações.

net use irá persistir através de reinicializações, por exemplo:

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

Veja as respostas em Como tornar o mapeamento SUBST persistente entre as reinicializações? para instruções detalhadas.


Solução 3: Instalar cygwin E use bash

Você poderia considerar a instalação cygwin:

Cygwin é:

  • uma grande coleção de ferramentas GNU e Open Source que fornecem funcionalidade semelhante a uma distribuição Linux no Windows.

Depois de instalar o cygwin, você pode executar bash em um terminal cygwin e defina a variável de ambiente bash HOME como apropriado.

Alternativas ao cygwin incluem msys (MingW):

O MSYS é uma coleção de utilitários GNU, como o bash, make, gawk e grep, para permitir a construção de aplicativos e programas que dependem da tradicional existência de ferramentas UNIX. Destina-se a complementar MinGW e as deficiências do shell cmd.

E Git para Windows:

O Git for Windows fornece uma emulação BASH usada para executar o Git a partir da linha de comando. * Os usuários do NIX devem se sentir em casa, já que a emulação BASH se comporta exatamente como o comando "git" nos ambientes LINUX e UNIX.


Solução 4: Use powershell

Como apontado em um comentário sobre outra questão SBI suporte a powershell ~ e você pode apenas digitar:

cd ~

Leitura Adicional

  • Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
  • CD - Alterar Diretório - Selecione uma Pasta (e drive)
  • setx - Defina as variáveis ​​de ambiente permanentemente, o SETX pode ser usado para definir as variáveis ​​de ambiente para a máquina (HKLM) ou usuário atualmente conectado (HKCU).
  • subst - Substitua uma letra de unidade por uma rede ou caminho local.

5



Se no Powershell existem duas maneiras adicionais: cd $HOME e cd $env:HOMEPATH - Dirk Thannhäuser


Não sei se é uma característica do nosso script de login de trabalho ou um padrão do Windows, mas eu posso usar cd% HOMEPATH% para conseguir isso, onde HOMEPATH é uma variável de ambiente.


3



Entendo. Ainda é preciso muito para escrever% HOMEPATH%. Além disso, você não pode concluí-lo automaticamente. Existe uma maneira que eu possa fazer o meu nome de usuário ser igual a% HOMEPATH%, fazendo um novo comando no cmd.exe? - classer


Se você quiser que todos os prompts de comando do usuário iniciem em seu diretório "home", crie a seguinte chave do Registro como um valor de string expansível (sem citações, é claro):

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

Se você quiser apenas seu comando pede para fazer isso:

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

Eu faço uma prática para manter uma pasta c: \ Scripts em que eu mantenho um arquivo em lote do tipo "autoexec" que eu invoco através desta chave.


1



Cuidado, isso vai quebrar bower e npm (e Visual Studio) ... - Quandary


Eu percebo que esta é uma questão há muito feita, mas apenas para o registro. Instalar clinkIsso amplia seu prompt de comando de várias maneiras. Sim, é mais pesado do que as soluções acima, mas faz a janela do cmd se comportar muito melhor.


1



clink == poderosa linha de comando Bash-style editando para cmd.exe - suspectus
Certo, e o ponto principal é que ~ resolve o diretório User \ {user}. - THBBFT


O Windows realmente se tornou 'Tudo sobre o gui', então, no seu caso, eu acabei de obter as ferramentas que você quer, em vez de tentar 'dobrar' o sistema à sua vontade ... As ferramentas do MinGW são uma excelente coleção de algumas das ferramentas de gnu mais usadas ... Eu recomendo que você seja um fã do nix no Win ...

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


0