Comment créer un lien symbolique avec un chemin relatif en utilisant mklink?

25

Cette page web implique qu'il est possible de faire des liens symboliques avec des chemins relatifs en utilisant mklink.

J'ai essayé toutes sortes de façons de créer des liens symboliques relatifs, mais je me retrouve toujours avec un chemin absolu.

Comment est-il fait?

paradroid
la source
MSDN a une étrange façon d'expliquer cela. J'ai eu du mal à comprendre comment faire un lien symbolique, car il n'y a pas d'exemples réels.
iglvzx
La seule raison pour laquelle je connais cette "voie étrange" est que MSDOS utilise cette méthode.
surfasb
Je ne comprends pas pourquoi ma question a 20 000 vues maintenant, alors que le problème a été causé par un bogue dans TCC / LE. Les liens symboliques sont généralement relatifs par défaut.
paradroid

Réponses:

38

Les liens symboliques sont relatifs par défaut. Vous devez explicitement écrire une lettre de lecteur pour rendre absolue une partie du lien.

La syntaxe générale d'un lien symbolique est:

mklink link destination

Donc, pour créer un lien symbolique relatif: linkva être un chemin d'accès relatif à votre répertoire de travail , et destinationva être un chemin d'accès relatif à link.

Exemples:

1. mklink link.txt ..\destination.txt

Cela crée un lien symbolique pour link.txtlequel pointe vers destination.txtun dossier vers le haut.

Vous pouvez vous déplacer link.txtet il pointera toujours vers destination.txtun dossier vers le haut.

2. C:\>mklink A\Link.txt ..\Destination.txt

Cela crée un lien symbolique C:\A\Link.txtpourC:\Destination.txt

iglvzx
la source
Ça y est. Plutôt que de commencer par une lettre de lecteur ou une barre oblique inverse, vous commencez simplement par un répertoire. par exemple mklink destination.txt "documentation\readme.txt"pointera vers un dossier enfant appelé documetation "et un fichier dans ce dossier appelé * readme.txt .
surfasb
@surfasb, @iglvzx: Au début, j'étais confus, car c'est exactement ce que j'ai essayé. Mais comme vous confirmez tous les deux que cela fonctionne, j'ai réalisé que cela fonctionne dans CMD, mais pas dans TCC/LE, c'est ce que j'ai utilisé. Je suis surpris qu'il modifie (développe) les arguments de chemin pour les programmes externes.
paradroid
@surfasb: Ce problème avec TCC / LE a été corrigé avec la nouvelle v13, mais s'est produit avec 12.11.76, que j'avais utilisé.
paradroid
2
@paradroid: Je suis content que ça marche. Je me souviens avec émotion de l'ancienne ancienne version de TCC. Depuis combien de temps l'utilisez vous maintenant? Sur un autre pas, ouais, les nuances de l'énumération PATH époustouflent mon esprit. Et le [blog] :( obligatoire blogs.msdn.com/b/oldnewthing/archive/2005/11/22/495740.aspx ) sur la façon dont les décisions antérieures MS-DOS vers la compatibilité encore nous affecte aujourd'hui.
surfasb