it-swarm.com.de

Relative Pfade für Windows-Verknüpfungen verwenden

Ich habe ein Ordnerschema wie (stark vereinfachte Version):

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

... und ich möchte in jedem Ordner eine Verknüpfung von den untergeordneten Ordnern "Neue Dateien" zu den untergeordneten Ordnern "Getestete Dateien" haben. Dieser Ordner kann jedoch von Zeit zu Zeit verschoben werden, wodurch die Verknüpfungen unterbrochen werden.

Gibt es eine Möglichkeit, eine relative Verknüpfung zu jedem Ordner herzustellen? Ich erinnere mich, dass ich dies in HTML getan habe, wo Sie einen Pfad festlegen konnten, etwas in der Art von .../Files, um zu einem übergeordneten Ordner und dann zu einem neuen Ordner zurückzukehren, aber ich bin mir nicht sicher, ob dies unter Windows-Verknüpfungen unterstützt wird?

PS: Der Fall von ähnlich relativen Verknüpfungen, wenn das Ziel eine Datei ist, wird in https://stackoverflow.com/questions/1169556/making-a-windows-shortcut-start-relative-to-where- behandelt. Der Ordner ist . Im vorliegenden Fall ist das Ziel ein Ordner.

46
Gary Morris

Sie können dieses Dienstprogramm verwenden: Relativ .

Es wird im Grunde eine Verknüpfung zu "Explorer.exe" mit dem Parameter Ihres relativen Pfads mit einem Rechtsklick erstellt (genauso wie Sie eine normale Verknüpfung erstellen).

Natürlich können Sie dies manuell tun.
In Ihrem Beispiel würden Sie unter "Neue Dateien\Tools" eine Verknüpfung zu erstellen

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

Sie können dazu das übliche Kontextmenü "Neu/Verknüpfung erstellen" von Windows verwenden und den obigen Befehl in das Feld "Position des Elements eingeben" eingeben.

48
Rik

Eine mögliche Lösung ist die Verwendung einer einzeiligen Batch-Datei anstelle einer Abkürzung, um das zu öffnen, was Sie öffnen möchten. In der Stapeldatei können Sie relative Pfade in sich selbst verwenden und ein Arbeitsverzeichnis für den Ordner haben, in dem sich die Stapeldatei befindet.


Eine andere Möglichkeit ist, die Verknüpfung mit cmd.exe zu starten, statt mit dem, was Sie starten, und dann mit dem, was Sie starten, als Argument für cmd.exe zu übergeben.

enter image description here

%COMSPEC% ist eine Umgebungsvariable, die standardmäßig auf den Befehl Eingabeaufforderung verweist.

Durch /C wird die Konsole geschlossen, nachdem der Befehl ausgeführt wurde.

28

Ich verwende eine ähnliche Lösung in einer Vorlage, in der meine Webentwicklungsumgebung ausgeführt wird (Projektverzeichnis öffnen, Browser öffnen, WAMP ausführen, SCSS ausführen ...).

enter image description here

Ich kann Argumente an mein Fledermausskript übergeben und so weiter, das ist cool. Stellen Sie sicher, dass nach /c das Argument cmd.exe steht.

6
Hrvoje Golcic

Dieser Trick funktioniert:

% COMSPEC%/C start "dein exe name ohne pfad"

beispiel

% COMSPEC%/C starten winmine.exe

5

Sie können mklink verwenden. Hier können Sie symbolische Links, Hardlinks und Verzeichnislinks erstellen.

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

Wenn es keinen erhöhten Zugriff gibt, können Sie/j verwenden

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

Um sich in der gesamten Struktur zu bewegen, sollten Sie den Befehl xcopy verwenden. Befindet sich beispielsweise die gesamte Struktur unter container :

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

befehl eingeben

 copy /b /e container container2

erstellt die folgende Struktur:

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

Der Schalter/b kopiert die Symbolische Links, anstatt sie in Ordner zu konvertieren.

2
Krauss

Wenn Sie das Feld 'Start In' in den Eigenschaften der Verknüpfung leer lassen, beziehen sich die Links auf das aktuelle Arbeitsverzeichnis.

Siehe auch https://stackoverflow.com/a/17951772/40961

1

Eine Verknüpfung kann die Position in einer Variablen aufzeichnen und einen Befehl mit der Variablen aufrufen. Erstellen Sie beispielsweise die Verknüpfung "Großeltern" mit Ziel:

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

Erstellen Sie die Batch-Datei "C:\Here.bat" mit der einzelnen Zeile:

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

Egal in welchem ​​Ordner sich Grandparent befindet, wenn Sie darauf klicken, wird der übergeordnete Ordner des übergeordneten Ordners geöffnet. Es funktioniert sogar mit Großeltern in einem Stammverzeichnis.

Ihre Batch-Datei hat möglicherweise% HERE% verwendet, um etwas anderes als Explorer.exe zu starten. Oder Sie können anstelle von Here.bat nach dem && im Verknüpfungsziel ein Programm aufrufen, das% HERE% verwendet.

Auf meinem System scheint Großeltern mit & oder && zu arbeiten.

1
mudr