Em primeiro lugar, devemos analisar a sintaxe das opções e os parâmetros necessários gerados inserindo a solicitação de ajuda do comando mklink
, mklink /?
:
MKLINK [[/D] | [/H] | [/J]] Link Target
/D Creates a directory symbolic link. Default is a file
symbolic link.
/H Creates a hard link instead of a symbolic link.
/J Creates a Directory Junction.
Link Specifies the new symbolic link name.
Target Specifies the path (relative or absolute) that the new link
refers to.
Atualmente, só é possível imbuir dados relativos de caminho de caminho nos links simbólicos do diretório.
Portanto, devemos usar o comandomklink
em conjunto com a opção de comando ("soft link") mklink
, /D
, assim.
mklink /D
. . .
O parâmetro mklink
Target
deve descrever um caminho de arquivo que inclua pelo menos um OPERADOR DE ARQUIVO RELATIVO como .
ou ..
em conjunto com quantos BACKSLASHES ( \
) forem necessários pela hierarquia relativa de diretórios pai, bem como um "
DOUBLE-QUOTED "
filepath em qualquer caso em que um ou mais caracteres de espaços em branco são requeridos por um fragmento de caminho de campo ABSOLUTE filho do link para -bem-concatenado mklink
Target
filepath.
Para finalizar o comando
mklink /D "C:/Test Folder/Link Name With Spaces"
. . .
substituindo o parâmetro mklink
Target
por
. . ..\"Target Name With Spaces"
ou
. . "..\Target Name With Spaces"
criará um destino de caminho relativo concatenado com sucesso em um link gerado em
C:/test foldEr/Link Name With Spaces
e terminando
mklink /D "C:/Test Folder/Test Folder 2/Link Name With Spaces"
. . .
com
. . "..\..\Target Name With Spaces"
ou
. . ..\..\"Target Name With Spaces"
criará um link em
C:/Test Folder/Test Folder 2/Link Name With Spaces
.
Em todos os quatro casos, o resultado final é um link simbólico de diretório que aponta para o diretório
C:/TaRget nAme WitH SpacEs
,
mas que apontará para um local diferente inteiramente se algum dos links gerados for movido para outro diretório por um comando como robocopy
ou por um aplicativo que similarmente honre links simbólicos.