Qual é o equivalente do “~” (til) do Linux no Windows?

59

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.

    
por Freewind 07.09.2011 / 14:28

8 respostas

38

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 .

    
por 07.09.2011 / 14:29
58

Você pode usar cd /d %USERPROFILE% se usar cmd.

ou você pode usar cd ~ se você usar o PowerShell.

    
por 07.09.2011 / 14:31
12

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

    
por 12.09.2011 / 18:32
6

Você pode fazer isso:

cd %homepath%
    
por 07.09.2011 / 14:36
4

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.

    
por 16.01.2013 / 22:03
2

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.

    
por 27.05.2017 / 08:22
1

No PowerShell, a sintaxe %variable% não funciona. Você pode fazer isso:

cd $env:USERPROFILE
    
por 27.05.2017 / 12:08
0

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.

    
por 13.04.2018 / 20:06