Existe um comando de atalho no prompt de comando do Windows para acessar o diretório inicial do usuário atual como no Linux?

105

Estou acostumado a usar

cd ~

para entrar direto no meu diretório pessoal. No prompt de comando do Windows, tenho que fazer

cd Users\username

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

cd username

É possível algo assim no Windows Vista?

classer
fonte
7
No Unix, não há necessidade do til. cdsem argumentos mudará para o diretório inicial.
coneslayer
havia uma pergunta como esta aqui no su, não consigo encontrá-lo.
akira
11
@coneslayer eu sei, mas para mover um arquivo de um diretório para outro, você usa o til.
classer
Tão simples quantocd %userprofile%
subtleseeker
Você pode usar o Windows Power Shell (no Win XP e posterior), que permite usar ~ para o diretório inicial. Veja também ----> stackoverflow.com/questions/9228950/…
franz1 4/10

Respostas:

20

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

dertoni
fonte
154

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

Existem várias outras variáveis ​​úteis disponíveis, como %OS%(Sistema operacional) ou %WINDIR%(diretório do sistema Windows). Consulte Wikipedia: Variáveis ​​de ambiente para obter uma lista.


Notas :

Na verdade, as coisas são um pouco complicadas (como sempre). %HOMEPATH%contém apenas o caminho, sem a letra da unidade, portanto, não funcionará para cduma unidade diferente. Você também pode usar %USERPROFILE%, o que faz conter a letra de unidade e é geralmente o mesmo diretório %HOMEPATH%.

Os valores dessas variáveis, e qual é o correto 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 inicial ).

sleske
fonte
5
Esta é a resposta mais correta, na minha opinião, porque não depende de caminhos codificados e de quaisquer links malucos do sistema de arquivos que possam estar entre eles.
Ed Orsi
3
Essa é a resposta correta.
Frederik Krautwald
Isso salvou minha vida! Depois de analisar muitas outras respostas de perguntas diferentes. Novamente! Isso funcionou para mim e deve ser marcado como a resposta para esta pergunta.
Patricia
@ MissLucy: Estou feliz por ter ajudado. Quanto a aceitar uma resposta: isso depende do OP para decidir. Você pode adicionar um comentário à pergunta para alertá-los.
sleske
use% USERPROFILE% em vez disso.
JJS # 8/16
22

Duas outras opções podem ser adicionadas a um script e executadas automaticamente de maneira semelhante à resposta do 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 ~nos caminhos, mas como uma rápida digitação "pule para o meu diretório doméstico" ~ Enteré muito rápida.

Carl
fonte
11
Você está brincando comigo com a coisa doskey ??? Agora eu tenho um único atalho de char para qualquer pasta que eu sinta como CD. Essa deve ser a resposta número 1.
Andrew
9

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

@cd %HOMEPATH%

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

Jaime de los Hoyos M.
fonte
2
Resposta mais inteligente. Combinar o seu com esta resposta de Kenny Evitt oferece a melhor solução.
2141616
7

A resposta de sleske é quase exatamente correta, 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 /Dinterruptor é necessário para permitir cda troca de unidades.

Kenny Evitt
fonte
5

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 cdoucd /d

  2. Use substou net usepara criar um mapeamento para outra letra de unidade.

  3. Instale cygwine usebash

  4. Uso powershell- PowerShell suporta~

A última solução é provavelmente a mais simples se você estiver preparado para usar em powershellvez de cmd.


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

Se você deseja alterar para esse diretório regularmente, execute o seguinte comando:

setx DOCS %USERPROFILE%

Isso definirá permanentemente a variável de ambiente DOCS, mas, para usá-la, 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á está na unidade, c:basta usar:

cd %DOCS%

Crie um arquivo em lotes ( docs.cmd) e coloque-o em algum lugar do seu PATH.

docs.cmd:

@echo off
cd /d %DOCS%

Você pode digitar, docsindependentemente da sua localização atual, e você será levado paraC:\Users\<current user>


Solução 2: use substou net usepara criar um mapeamento para outra letra de unidade.

Você pode usar subst:

subst x: %USERPROFILE%

E depois

x:

Infelizmente, os mapeamentos de unidades não persistem nas reinicializações.

net use persistirá durante as reinicializações, por exemplo:

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

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


Solução 3: instalar cygwine usarbash

Você pode considerar instalar 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 bashem um terminal do cygwin e definir a variável de ambiente bash HOMEconforme apropriado.

Alternativas ao cygwin incluem msys (MingW) :

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

E Git para Windows :

O Git para 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, pois a emulação BASH se comporta exatamente como o comando "git" nos ambientes LINUX e UNIX.


Solução 4: Use powershell

Conforme indicado em um comentário sobre outra pergunta do SBI powershell, ~é possível digitar:

cd ~

Leitura adicional

  • Um índice AZ da linha de comando do Windows CMD - uma excelente referência para todos os itens relacionados à linha de cmd do Windows.
  • cd - Alterar diretório - Selecione uma pasta (e unidade)
  • setx - Defina variáveis ​​de ambiente permanentemente, o SETX pode ser usado para definir variáveis ​​de ambiente para a máquina (HKLM) ou usuário conectado no momento (HKCU).
  • subst - Substitua uma letra de unidade por uma rede ou caminho local.
DavidPostill
fonte
Se no Powershell houver duas maneiras adicionais: cd $HOMEecd $env:HOMEPATH
Dirk Thannhäuser
3

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

Rob Cowell
fonte
Eu vejo. Ainda é preciso muito para escrever% HOMEPATH%. Além disso, você não pode concluir automaticamente. Existe uma maneira de tornar meu nome de usuário igual a% HOMEPATH% criando um novo comando no cmd.exe?
classer 28/07/10
1

Se você deseja que todos os prompts de comando do usuário iniciem em seu diretório "inicial", crie a seguinte chave do Registro como um Valor de cadeia expansível (sem aspas, é claro):

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

Se você deseja que apenas os seus comandos solicitem:

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

Eu costumo manter uma pasta ac: \ Scripts na qual mantenho um arquivo em lotes do tipo "autoexec" que eu chamo por meio dessa chave.

BillP3rd
fonte
Cuidado, isso vai quebrar Bower e npm (e Visual Studio) ...
Quandary
1

Sei que essa é uma pergunta há muito feita, mas apenas para constar. Instale clink, isso estende seu prompt de comando de várias maneiras. Sim, é mais pesado que as soluções acima, mas faz com que a janela do cmd se comporte muito melhor.

THBBFT
fonte
tilintar == poderoso estilo Bash comando de linha de edição para cmd.exe
suspectus
Certo, e o ponto principal é que ~ resolve para o diretório Usuário \ {usuário}.
THBBFT
0

O Windows realmente se tornou 'Tudo sobre o GUI', então, no seu caso, eu apenas obteria as ferramentas que você deseja, em vez de tentar 'dobrar' o sistema à sua vontade ... As ferramentas do MinGW são uma excelente coleção de alguns dos ferramentas gnu mais usadas ... Eu recomendo se você é um fã nix no Win ...

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

Eddie B
fonte
0

Eu usei um terminal melhor ( cmder ) para esse fim. Ele possui aliases e é muito fácil de usar. Basta ler a documentação sobre aliases aqui .

Don Camillo
fonte