Atalho de diretório para o console do Windows

0

Eu gostaria de criar um atalho para algum diretório que eu possa usar no console do Windows com o comando cd . Então eu crio um link simbólico de diretório:

mklink /D link_name c:\some\path

/D é para um link simbólico do diretório (o padrão é um link simbólico do arquivo )

Digamos que eu criei o link link_name no diretório pessoal do meu usuário: c:\Users\user\link_name .

Eu posso usar esse link com o comando cd :

c:\Users\user> cd link_name
c:\Users\user\link_name>

O único problema é o caminho resultante. Eu simplesmente preciso ter o caminho resultante igual ao destino do link simbólico , ou seja, c:\some\path do meu exemplo, mas é c:\Users\user\link_name .

Portanto, o link simbólico do diretório é mais um alias de diretório do que um atalho .

O que eu preciso:

c:\Users\user> cd link_name
c:\some\path> cd ..
c:\some>

Como o link simbólico do diretório funciona:

c:\Users\user> cd link_name
c:\Users\user\link_name> cd ..
c:\Users\user>

Existe alguma maneira de conseguir o que eu preciso? Eu prefiro algum objeto do sistema de arquivos sobre a definição de uma variável de ambiente, etc.

    
por Dawid Ferenczy 26.07.2018 / 23:17

1 resposta

2

Não é assim que um link simbólico funciona.

O que você quer fazer não é diretamente possível, mas existem métodos que você pode usar que são semelhantes.

Por exemplo, você pode colocar um arquivo .cmd nessa pasta que altera a pasta para a nova e, em seguida, digite o nome do arquivo .cmd para ir para a outra pasta. Se você armazenar esse arquivo .cmd em uma pasta que também esteja listada na variável de ambiente% PATH%, poderá digitar o nome desse cmd em qualquer lugar para redirecionar para essa nova pasta.

O .cmd teria simplesmente o comando cd nele. Exemplo:

::cd_link_name.cmd
cd /d c:\some\path

A desvantagem é que nenhum programa seguirá esse link.

Se você quiser que um programa siga o link você realmente precisa do mklink para criar uma junção e sim, isso significa que para o sistema a pasta virtual parece estar no local da junção, mas ela realmente redireciona. Simplesmente não há maneira de contornar isso.

Dito isso, se seu objetivo for apenas navegar rapidamente pelas pastas favoritas a partir da linha de comando, considere escrever um arquivo de lote global que você armazene em um local mencionado em% PATH% e que altere a pasta para você.

Um exemplo de tal arquivo cmd seria:

:: cdf.cmd
@echo off

:: lets see if the first parameter is recognized. If so, change folder.
:: note, you can't use spaces in these identifiers, but you can keep them
::  short and to the point.

:: c forwards to c:\
if "%1"=="c" cd /d c:\

:: desk forwards to your Desktop folder
if "%1"=="desk" cd /d %USERPROFILE%\desktop

::docs forwards to your My Documents folder 
if "%1"=="docs" cd /d %USERPROFILE%\Documents

::a1 forwards to e:\some\path\special
if "%1"=="a1" cd /d e:\some\path\special

e assim por diante ....

Você pode fazer isso:

C:\Windows\System32>cdf a1

E:\Some\Path\Special>cdf desk

C:\Users\Username\Desktop>_

btw, eu chamei de cdf para: Alterar Favoritos do Diretório. :) Mas qualquer nome fará, é claro.

    
por 26.07.2018 / 23:31