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