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

89

Estou acostumado a usar

cd ~

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

cd Users\username

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

cd username

É algo assim possível no Windows Vista?

    
por classer 28.07.2010 / 11:47

11 respostas

17

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

    
por 28.07.2010 / 12:47
132

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

Existem algumas outras variáveis úteis disponíveis, como %OS% (Operating System) ou %WINDIR% (diretório de sistema do Windows). Consulte wikipedia: valores ambientais para obter 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, portanto, não funcionará para cd ing de uma unidade diferente. Você também pode usar %USERPROFILE% , que contém a letra da unidade, e geralmente é o mesmo diretório que %HOMEPATH% .

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

    
por 28.07.2010 / 12:12
19

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

São mais dois caracteres, mas ...

SET ~=%HOMEPATH%    
CD %~%

ou ...

CD %~%\Desktop

Ou ...

doskey ~=cd %homepath%
~

É claro que você não pode usar este ~ nos caminhos, mas como um rápido "pulo para meu diretório home", digitar ~ Enter é muito rápido.

    
por 18.01.2013 / 19:26
8

Eu criei um arquivo .cmd em um diretório em 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.

    
por 07.05.2013 / 20:33
6

a resposta de sleske é quase exatamente certa, mas nem sempre funciona.

Se o seu diretório home 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%

A opção /D é necessária para permitir que cd altere as unidades.

    
por 31.07.2014 / 20:39
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 cd ou cd /d

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

  3. Instale cygwin e use bash

  4. Use powershell - o powershell suporta ~

A última solução é provavelmente a mais simples se você estiver preparado para usar powershell em vez 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 definirá permanentemente a variável de ambiente DOCS , mas para usá-la você precisa primeiro iniciar um novo cmd shell, então 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 na unidade c: , basta usar:

cd %DOCS%

Crie um arquivo de lote ( docs.cmd ) e coloque-o em algum lugar no seu PATH .

docs.cmd:

@echo off
cd /d %DOCS%

Você pode então digitar docs , independentemente da sua localização atual, e você será direcionado 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 então

x:

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

net use persistirá nas 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: instale cygwin e use bash

Você pode considerar a instalação do cygwin :

Cygwin is:

  • a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.

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

As alternativas ao cygwin incluem msys (MingW) :

MSYS is a collection of GNU utilities such as bash, make, gawk and grep to allow building of applications and programs which depend on traditionally UNIX tools to be present. It is intended to supplement MinGW and the deficiencies of the cmd shell.

E Git para Windows :

Git for Windows provides a BASH emulation used to run Git from the command line. *NIX users should feel right at home, as the BASH emulation behaves just like the "git" command in LINUX and UNIX environments.

Solução 4: use powershell

Como apontado em um comentário sobre outra questão do SBI , o powershell suporta ~ e você pode 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 - Selecionar uma pasta (e unidade)
  • setx - Defina as variáveis de ambiente permanentemente, 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.
por 04.03.2016 / 13:16
3

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

    
por 28.07.2010 / 12:01
1

Se você quiser 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 seqüência expansível (sem citações, é claro):

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

Se você quiser que apenas o seu comando solicite:

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

Eu faço uma prática para manter uma pasta c: \ Scripts na qual eu mantenho um arquivo em lote do tipo "autoexec" que eu invoco por meio dessa chave.

    
por 17.08.2010 / 02:42
1

Eu percebo que esta é uma questão há muito feita, mas apenas para o registro. Instale clink , isso estende 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.

    
por 20.02.2015 / 15:22
0

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 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 ...

link

    
por 18.10.2012 / 10:43
0

Eu usei um terminal melhor ( cmder ) para essa finalidade. Foi construído em aliases e é muito fácil de usar. Basta ler a documentação sobre Aliases aqui .

    
por 04.04.2018 / 22:49