Ausführen eines symbolischen Links zu exe - "Der angegebene Pfad existiert nicht"

19

Beim Versuch, eine symbolische Verknüpfung auszuführen, die auf eine exe-Datei verweist (unter Windows 7), wird das Fenster "Öffnen mit" angezeigt. Beim Umbenennen in eine ".exe" -Datei wird angezeigt, dass der angegebene Pfad nicht vorhanden ist. Überprüfen Sie den Pfad, und versuchen Sie es erneut. Symlinks zu anderen Zielen scheinen in Ordnung zu sein.

Gibt es also eine Möglichkeit, einen Symlink auszuführen?

BEARBEITEN: In der Eingabeaufforderung führe ich Folgendes aus und die MyProgram.exe wird beide Male ausgeführt. Wenn ich jedoch im Windows Explorer auf den symbolischen Link doppelklicke, schlägt der Vorgang mit der obigen Fehlermeldung fehl.

C:\Temp>mklink SomeProgram.exe MyProgram.exe
symbolic link created for Backup.exe <<===>> Backup-1.0.1.exe

C:\Temp>SomeProgram.exe

C:\Temp>del SomeProgram.exe

C:\Temp>mklink SomeProgram.exe C:\Temp\MyProgram.exe
symbolic link created for Backup.exe <<===>> C:\Temp\Backup-1.0.1.exe

C:\Temp>SomeProgram.exe
basic6
quelle
Stellen Sie sicher, dass Ihre Symlinks auf die richtige Stelle verweisen - das Ziel ist relativ zum Speicherort des Links und nicht zum aktuellen Verzeichnis, wenn Sie einen Link erstellen. (Dies beißt * nix Benutzer oft.)
Grawity
@grawity: Nicht wahr. Symlinks können auf * nix sowohl absolute als auch relative Pfade verwenden. Außerdem erwähnte er Windows 7.
Kurt Pfeifle
@pipitas: Sie haben Recht, dass Symlinks absolute Pfade verwenden können (ich habe es nie anders gesagt). Es ist nur so, dass die Leute oft ln -s ../../foo somedir/bardas Falsche verwenden und es verstehen. || Symlinks funktionieren in * nix und Windows genauso.
Grawity

Antworten:

8

Da die einzige andere Antwort das Problem nicht wirklich "behebt", sondern nur bestätigt, ist es meines Erachtens angebracht zu sagen, dass ich dasselbe Problem hatte und das Problem entdeckt habe.

Das Problem war für mich relative vs absolute Symlinks. Ich benutze Link Shell Extension .

Wenn Sie absolute Symlinks erstellen , funktioniert der Explorer einwandfrei. Beim Erstellen relativer Links werden sie vom Explorer erstickt.

Ich kann nur vermuten, dass dies irgendwie damit zusammenhängt, wie der Explorer das Arbeitsverzeichnis berechnet. Vielleicht ein paar Schrägstriche?

(Beachten Sie, dass Sie zumindest unter Win7 x64 nach der Installation der Erweiterung möglicherweise LSEConfig.exe öffnen müssen, und Absolute und dann Relative aktivieren müssen, damit relative Verknüpfungen erstellt werden, da die Standardkonfiguration nicht vorhersehbar ist, manchmal relativ, manchmal absolut .)


quelle
Ich habe LSE installiert, aber wo finde ich LSEConfig.exe?
Laggingreflex
Ah, ich musste die neueste Version installieren. Es war vorher nicht da.
Laggingreflex
5
Absolute Links funktionieren unter Windows 7 32-Bit nicht besser als relative Links. Zumindest nicht über mklink [absolutelink] [absolutetarget].
weberc2
5

Funktioniert bei mir....

D:\Develop\DateTouch>mklink foo.exe TouchDate.exe
symbolic link created for foo.exe <<===>> TouchDate.exe

D:\Develop\DateTouch>foo.exe

Wie erstellen Sie die symbolische Verknüpfung?


Bearbeiten :

Bildbeschreibung hier eingeben

  • Windows 7 Service Pack 1 angewendet?
  • 64-Bit?

Bearbeiten: Ich sehe ein Problem:

C:\Users\ian.AVATOPIA>mklink foo4.exe c:\asdfasdf\adfasdf.exe
symbolic link created for foo4.exe <<===>> c:\asdfasdf\adfasdf.exe

Stellen Sie also sicher, dass Ihre Datei tatsächlich vorhanden ist.


Bearbeiten: Ich glaube, ich sehe Ihr Problem:

  • Es wird problemlos über eine Eingabeaufforderung gestartet
  • Der Start über Windows Explorer schlägt fehl :

Bildbeschreibung hier eingeben

Ian Boyd
quelle
Genau das mache ich. "mklink foo.exe c: \ windows \ system32 \ notepad-exe" oder wenn sich notepad im aktuellen Verzeichnis "mklink foo2.exe notepad.exe" befindet. Beim Versuch, foo.exe oder foo2.exe zu öffnen, erhalte ich die Fehlermeldung. Beachten Sie, dass ich die Dateien mit einem Texteditor öffnen kann, indem ich ".exe" durch ".txt" ersetze, damit das Ziel des Symlinks korrekt ist.
basic6
1
Ja das ist es! Der heilige Explorer weigert sich, Symlinks auszuführen, die Windows-Eingabeaufforderung und andere Dateimanager wie muCommander jedoch nicht. Das löst mein Problem - danke!
basic6
4
Nun, es löst das Problem nicht. aber es erklärt, wie man es reproduziert. Ich konnte nichts im Prozessmonitor finden, das darauf hindeuten würde, warum der Explorer ihn nicht starten kann. Ich habe sogar eine Anwendung geschrieben und angerufen ShellExecute, und es startet gut.
Ian Boyd
1
Ablehnung für die Nichtbeachtung des tatsächlichen Problems.
weberc2
2

Ziemlich nekrotisch, aber ich hatte immer noch die gleiche Frage und dies war die einzige, die sich mit diesem Problem befasste.

Aber hier ist meine Problemumgehung! Wenn Sie mit "C: \ app.exe" Probleme haben, weil Sie wegen des Explorers nicht gestartet wurden, erstellen Sie einfach "app.bat" mit "C: \ app.exe" als Inhalt. Durch Starten von app.bat wird app.exe über die Befehlszeile gestartet.

Das Problem besteht nun darin, dass es vom Speicherort von app.exe ausgeführt wird, sodass relative Links in der EXE-Datei Probleme verursachen können. Nur einfache Programme funktionieren. Sie können immer noch eine .bat-Datei erstellen, die an den Zielspeicherort geht und dann die .exe ausführt, aber von "nur einem Symlink" sind wir meilenweit entfernt.

Wolfzoon
quelle