2013-09-12 14:49:06 +0000 2013-09-12 14:49:06 +0000
53
53

Utilisation des chemins relatifs pour les raccourcis Windows

J'ai un schéma de dossiers comme (version très simplifiée) :

New Files
 >Tools
 >Scripts
Tested Files
 >Tools
 >Scripts

… et j'aimerais avoir un raccourci dans chaque dossier à partir des dossiers enfants “Nouveaux fichiers”, vers le dossier enfant “Fichiers testés”. Mais ce dossier peut être déplacé de temps en temps, ce qui briserait lesdits raccourcis.

Y a-t-il un moyen de créer un raccourci relatif à chaque dossier ? Je me souviens avoir fait cela en HTML où l'on pouvait définir un chemin, quelque chose du genre .../Files pour revenir à un parent puis dans un nouveau dossier, mais je ne suis pas sûr que ce soit quelque chose de supporté par les raccourcis Windows ?

PS : Le cas des raccourcis relatifs similaires, lorsque la cible est un fichier, est traité dans https://stackoverflow.com/questions/1169556/making-a-windows-shortcut-start-relative-to-where-the-folder-is . Dans le cas présent, la cible est un dossier.

Réponses (7)

53
53
53
2013-09-12 15:08:36 +0000

Vous pouvez utiliser cet utilitaire : Relative .

Il crée essentiellement un raccourci vers “explorer.exe” avec le paramètre de votre chemin relatif par un clic droit (de la même manière que vous créez un raccourci normal).

Bien sûr, vous pouvez le faire manuellement.
Dans votre exemple, vous créerez un raccourci dans “New Files\Tools” vers

%windir%\explorer.exe "..\..\Tested Files\Tools"

Vous pouvez utiliser le menu contextuel habituel “New/Create shortcut” de Windows pour cela et taper la commande ci-dessus dans la case “Type the location of the item”.

31
31
31
2013-09-12 15:45:43 +0000

Une solution possible est d'utiliser un fichier batch d'une ligne au lieu d'un raccourci pour ouvrir ce que vous vouliez ouvrir. Le fichier batch vous permettra d'utiliser des chemins relatifs à l'intérieur de lui-même et aura un répertoire de travail quel que soit le dossier dans lequel le fichier batch est placé.


Une autre option est de faire en sorte que votre raccourci commence à cmd.exe au lieu de cela, avec ce que vous lancez, puis de passer ce que vous lancez en argument à cmd.exe

%COMSPEC% est une variable d'environnement qui pointe vers l'invite de commande par défaut .

/C entraîne la fermeture de la console après l'exécution de la commande.

7
7
7
2014-05-12 01:21:58 +0000

J'utilise une solution similaire dans un modèle qui fait fonctionner mon environnement de développement web (ouvrir le répertoire du projet, ouvrir le navigateur, lancer WAMP, lancer SCSS…)

Je peux passer des arguments à mon script bat et etc. Assurez-vous de mettre l'argument /c après cmd.exe

6
6
6
2016-08-18 16:47:41 +0000

Cette astuce fonctionne :

%COMSPEC% /C start “votre nom d'exe sans chemin”

exemple

%COMSPEC% /C start winmine.exe

4
4
4
2016-08-30 08:19:38 +0000

Vous pouvez utiliser mklink . Il vous permet de créer des liens symboliques, des liens en dur et des liens de répertoire.

mklink /d Tools "..\Tested Files\Tools" (elevated command prompt)

S'il n'y a pas d'accès élevé, vous pouvez utiliser /j

mklink /j Tools "..\Tested Files\Tools"

Pour vous déplacer dans toute la structure, vous devez utiliser la commande xcopy. Par exemple, si toute la structure se trouve sous conteneur :

container
   New Files
      <SYMLINKD> Scripts [..\Tested Files\Scripts]
      <SYMLINKD> Tools [..\Tested Files\Tools]
   Tested Files    
      Scripts
      Tools

en entrant la commande

xcopy /b /e container container2

, la structure suivante sera créée :

container2
   New Files
      <SYMLINKD> Scripts [..\Tested Files\Scripts]
      <SYMLINKD> Tools [..\Tested Files\Tools]
   Tested Files    
      Scripts
      Tools

Le commutateur /b copiera les liens symboliques au lieu de les convertir en dossiers. (Notez que /b a une signification complètement différente pour la commande copy)

1
1
1
2015-09-26 02:33:10 +0000

Un raccourci peut enregistrer son emplacement dans une variable et appeler une commande à l'aide de cette variable. Par exemple, créez le raccourci “Grandparent” avec la cible :

%windir%\system32\cmd.exe /c set HERE="%CD%" && "C:\Here.bat"

Créez le fichier batch “C:\Here.bat” avec la ligne simple :

@%windir%\explorer.exe /n,/select, %HERE%

Maintenant, quel que soit le dossier dans lequel se trouve Grandparent, lorsque vous cliquez dessus, le parent de son dossier parent s'ouvre. Il fonctionne même avec Grandparent dans un répertoire racine.

Votre fichier batch aurait pu utiliser %HERE% pour démarrer autre chose qu'explorer.exe. Ou au lieu de Here.bat après le && dans la cible du raccourci, vous pourriez appeler un programme qui utilise %HERE%.

Sur mon système, Grand-parent semble travailler avec & ou &&.

1
1
1
2016-01-01 08:42:40 +0000

Si vous laissez la case 'Start In' vide dans les propriétés du raccourci, les liens doivent être relatifs au répertoire de travail en cours.

Voir aussi https://stackoverflow.com/a/17951772/40961