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

Relatieve paden gebruiken voor Windows snelkoppelingen

Ik heb een mappenschema zoals (sterk vereenvoudigde versie):

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

… en ik zou graag in elke map een snelkoppeling hebben van de “Nieuwe Bestanden” kindermappen, naar de “Geteste Bestanden” kindermap. Maar deze map kan van tijd tot tijd verplaatst worden, wat de snelkoppelingen zou verbreken.

Is er een manier om een relatieve snelkoppeling naar elke map te maken? Ik herinner me dat je dit in HTML kon doen, waar je een pad kon instellen, iets in de trant van .../Files om terug te gaan naar een bovenliggende map en dan naar een nieuwe map, maar ik weet niet zeker of dit iets is dat ondersteund wordt door Windows snelkoppelingen?

PS: Het geval van soortgelijke relatieve snelkoppelingen, wanneer het doel een bestand is, wordt behandeld in https://stackoverflow.com/questions/1169556/making-a-windows-shortcut-start-relative-to-where-the-folder-is . In het onderhavige geval is het doel een Map.

Antwoorden (8)

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

U kunt dit hulpprogramma gebruiken: Relatief ](http://www.csparks.com/Relative/index.html).

Het maakt in principe een snelkoppeling naar “explorer.exe” met de parameter van je relatieve pad met een klik met de rechtermuisknop (op dezelfde manier als je een normale snelkoppeling maakt).

Natuurlijk kun je dit ook handmatig doen.
In jouw voorbeeld zou je een snelkoppeling maken in “Nieuwe bestanden” naar

Je kunt hiervoor het gebruikelijke context-menu “Nieuw/Snelkoppeling maken” van Windows gebruiken en het bovenstaande commando intypen in “Typ de locatie van het item”-vak.

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

Een mogelijke oplossing is het gebruik van een éénregelig batchbestand in plaats van een sneltoets om te openen wat je maar wilt openen. Het batchbestand laat je relatieve paden in zichzelf gebruiken en zal een werkdirectory hebben van de map waarin het batchbestand is geplaatst.


Een andere optie is om je snelkoppeling te laten starten met cmd.exe in plaats van met wat je ook aan het opstarten bent en dan wat je ook aan het opstarten bent als argument mee te geven aan cmd.exe

%COMSPEC% is een omgevingsvariabele die standaard naar de opdrachtprompt wijst.

/C zorgt ervoor dat de console zichzelf sluit nadat het commando is uitgevoerd.

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

Ik gebruik een soortgelijke oplossing in een sjabloon dat mijn web ontwikkel omgeving draait (open project directory, open browser, draai WAMP, draai SCSS…)

Ik kan argumenten doorgeven aan mijn bat script en etc., dit is cool. Zorg ervoor dat je het argument /c na cmd.exe zet.

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

Deze truc werkt :

%COMSPEC% /C start“uw exe naam zonder pad”

voorbeeld

%COMSPEC% /C start winmine.exe

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

U kunt mklink gebruiken. Hiermee kun je symbolische links, hard links en directory links maken.

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

Als er geen verhoogde toegang is, kun je /j

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

gebruiken Om de hele structuur te verplaatsen moet je het xcopy commando gebruiken. Bijvoorbeeld, als de hele structuur onder container staat :

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

door het commando

xcopy /b /e container container2

in te voeren wordt de volgende structuur gemaakt:

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

De /b switch zal de Symbolische links kopiëren in plaats van ze om te zetten in mappen. (Merk op dat /b een heel andere betekenis heeft voor het copy commando)

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

Een snelkoppeling kan zijn locatie vastleggen in een variabele en een commando aanroepen met behulp van de variabele. Bijvoorbeeld, maak de snelkoppeling “Grootouder” met als doel:

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

Maak het batch bestand “C:Hier.bat” met de enkele regel:

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

Nu, in welke map Grootouder ook zit, als je er op klikt, opent de bovenliggende map van zijn bovenliggende map. Het werkt zelfs met Grootouder in een hoofdmap.

Je batch bestand had %HERE% kunnen gebruiken om iets anders te starten dan explorer.exe. Of in plaats van Here.bat na de && in het snelkoppelingsdoel, zou je een programma kunnen aanroepen dat gebruik maakt van %HERE%.

Op mijn systeem lijkt Grandparent te werken met & of &&.

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

Als u het vakje 'Start In' leeg laat in de eigenschappen van de snelkoppeling, zijn de links relatief aan de huidige werkdirectory.

Zie ook https://stackoverflow.com/a/17951772/40961

0
0
0
2019-06-20 16:48:10 +0000

U kunt een omgevingsvariabele aanmaken die het (relatieve) pad bevat naar de doelmap of een map erboven in de bestandssysteemstructuur.

Voorbeeld:

  • Omgevingsvariabele:

  • Snelkoppeling Doel:

U kunt het DOS commando SETX gebruiken om omgevingsvariabelen te maken.