cd /d "%HOMEDRIVE%%HOMEPATH%"
faria isso - mas não tenho certeza se você considera uma melhoria.
Você também pode definir um alias para o comando acima:
doskey cdhome=cd /d "%HOMEDRIVE%%HOMEPATH%"
Depois disso, é simplesmente cdhome
.
No Linux, podemos ir para a página inicial do usuário digitando o caractere til ( ~
) depois de cd
:
cd ~
Como fazer o mesmo no Windows?
Sempre que preciso digitar:
cd C:\Document and Settings\freewind
Isso é muito chato.
Você pode usar cd /d %USERPROFILE%
se usar cmd.
ou você pode usar cd ~
se você usar o PowerShell.
Uma possibilidade é usar o comando subst
em um prompt de comando:
subst z: C:\Document and Settings\freewind
Toda vez que você navegar para o Z :, você verá sua pasta de usuário.
A desvantagem é que você precisa executá-lo toda vez que faz o login. Eu usei um arquivo em lote e o coloquei na minha pasta de inicialização, mas provavelmente existem soluções mais elegantes para isso.
O benefício é que, ao contrário de um alias doskey, ele funciona universalmente (windows explorer, browse dialog, etc.), não apenas ao alterar diretórios no prompt de comando. É especialmente útil para programas antigos com diálogos de navegação antigos que tenham letras de unidade no nível mais alto, em vez de "área de trabalho".
Você pode fazer isso:
cd %homepath%
Você pode criar um arquivo de lote chamado ~.bat
contendo
@echo off
cd /d %USERPROFILE%
E adicione-o à sua variável PATH (Start- > [clique com o botão direito em "Computador"] - > Propriedades- > "Configurações avançadas do sistema" [na coluna da esquerda] - > "Variáveis de ambiente"
A partir daí, basta editar sua variável PATH para incluir a pasta que contém o arquivo ~.bat
. (Isso permite que você invoque seu script de qualquer lugar usando apenas o nome do arquivo - não o caminho absoluto para o arquivo)
Além disso, verifique se a variável de ambiente PATHEXT
contém .BAT
em algum lugar (isso permite digitar ~
em vez de ~.bat
).
Quando você precisar usá-lo, simplesmente digite ~
no prompt de comando. Essa solução é persistente - você não precisará configurá-la toda vez que iniciar um shell e não precisará hackear seu registro.
Infelizmente, não tenho conhecimento de uma solução perfeita, mas há algumas opções de hacky:
Opção 1: defina ~ para ser um alias de comando com doskey
doskey ~=cd /d %USERPROFILE%
Isso permitirá que você simplesmente digite ~
e envie para o seu homedir.
C:\>~
C:\Users\a>
Obviamente, isso reduz o número de pressionamentos de tecla para chegar em casa (mesmo comparado ao Linux), mas é menos robusto, já que você não pode usá-lo como parte de outro caminho ou fazer muito mais do que apenas copiar para casa.
Opção 2: defina ~ para ser uma variável
Outra opção, se você quiser uma opção mais robusta, é definir um var:
set ~="%USERPROFILE%"
mas usando isso seria usado como:
E:\>cd /d %~%
C:\Users\a>
Ele também pode ser injetado na maioria dos caminhos e não o limita a simplesmente copiar para casa.
Ambas as opções simultaneamente
Além disso, você pode implementar os dois métodos simultaneamente. Se você tem o% em torno dele, então ele utilizará a variável - caso contrário, ele tratará ~
como um comando.
C:\>:: ECHO (display) THE VALUE OF %~%
C:\>echo %~%
C:\Users\a
C:\>:: ChDir to ~\DESKTOP
C:\>cd /d %~%\Desktop
C:\Users\a\Desktop>:: USE THE ~ COMMAND
C:\Users\a\Desktop>~
C:\Users\a>
Uma outra dica (relacionada):
Isso é menos provável de ser aceitável em uma máquina corporativa, pelo menos em seu PC doméstico, para salvar pressionamentos de tecla adicionais, não é uma má idéia tornar seu %USERPROFILE%
dir um nome simples. Como você pode ver nos meus exemplos acima, meu diretório de usuário é C:\Users\a
- eu costumava ter sempre 'aplocher' ou 'adamp' e quando mudei para uma única letra, foi mágico.
No PowerShell, a sintaxe %variable%
não funciona. Você pode fazer isso:
cd $env:USERPROFILE
Usando o PowerShell, você pode tentar o seguinte método para navegar pelos diretórios de qualquer lugar, desde que você saiba seu nome de usuário e tenha permissões de diretório de arquivos concedidas.
cd \..\Users\yourUserName\Documents
cd \..\Users\yourUserName\Downloads
cd \..\Users\yourUserName\Desktop
cd \..\Users\yourUserName\music
Veja o exemplo abaixo no PowerShell (64 bits). Eu testei isso em uma caixa do Windows 7 Pro 64bit.
Tags command-line windows linux