Wykonywanie dowiązania symbolicznego do pliku exe - „Podana ścieżka nie istnieje”

19

Podczas próby wykonania dowiązania symbolicznego wskazującego plik exe (w systemie Windows 7) pojawia się okno „Otwórz za pomocą”. Podczas zmiany nazwy pliku „.exe” pojawia się komunikat „Podana ścieżka nie istnieje. Sprawdź ścieżkę, a następnie spróbuj ponownie.”. Łącza do innych miejsc docelowych wydają się działać dobrze.

Czy jest więc jakiś sposób na wykonanie dowiązania symbolicznego?

EDYCJA: W wierszu polecenia wykonuję następujące czynności, a MyProgram.exe uruchamia się za każdym razem. Jednak dwukrotne kliknięcie łącza symbolicznego w Eksploratorze Windows kończy się niepowodzeniem z powyższym komunikatem o błędzie.

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
podstawowy 6
źródło
Upewnij się, że twoje dowiązania symboliczne wskazują właściwe miejsce - cel jest zależny od lokalizacji łącza, a nie do bieżącego katalogu podczas tworzenia łącza. (To często gryzie * użytkowników nix.)
user1686
@grawity: Nieprawda. Dowiązania symboliczne mogą używać ścieżek bezwzględnych i względnych w * nix. Wspomniał także o systemie Windows 7.
Kurt Pfeifle,
@pipitas: Masz rację, że dowiązania symboliczne mogą korzystać ze ścieżek bezwzględnych (nigdy nie powiedziałem inaczej), po prostu ludzie często używają ln -s ../../foo somedir/bari rozumieją źle. || Dowiązania symboliczne działają dokładnie tak samo w * nix i Windows.
user1686

Odpowiedzi:

8

Ponieważ jedyna inna odpowiedź tak naprawdę „nie naprawia” problemu, po prostu to potwierdza, myślę, że warto powiedzieć, że miałem ten sam problem i odkryłem problem.

Dla mnie problemem były względne vs absolutne dowiązania symboliczne. Używam Link Shell Extension .

Podczas tworzenia absolutnych dowiązań symbolicznych Explorer działa dobrze. Podczas tworzenia łączy względnych Eksplorator dusi się na nich.

Mogę tylko zgadywać, że ma to związek z tym, jak Explorer oblicza katalog roboczy? Może jakieś problemy z cięciem?

(Należy pamiętać, że przynajmniej w Win7 x64 może być konieczne otwarcie LSEConfig.exe po zainstalowaniu rozszerzenia i przełączenie Absolute, a następnie Relative, aby uzyskać względne linki, ponieważ domyślna konfiguracja jest nieco nieprzewidywalna, czasem względna, a czasem absolutna .)


źródło
Mam zainstalowany LSE, ale gdzie mogę znaleźć LSEConfig.exe?
laggingreflex
Ach, musiałem zainstalować najnowszą wersję. Nie było go wcześniej.
laggingreflex
5
Łącza bezwzględne nie działają lepiej niż łącza względne w systemie Windows 7 w wersji 32-bitowej. Przynajmniej nie, gdy wykonane przez mklink [absolutelink] [absolutetarget].
weberc2,
5

Pracuje dla mnie....

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

D:\Develop\DateTouch>foo.exe

Jak tworzysz dowiązanie symboliczne?


Edytuj :

wprowadź opis zdjęcia tutaj

  • Zastosowano system Windows 7 z dodatkiem Service Pack 1?
  • 64-bit?

Edit: widzę się problem:

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

Upewnij się więc, że plik rzeczywiście istnieje.


Edycja: myślę, że widzę twój problem:

  • uruchamia się dobrze z wiersza polecenia
  • nie uruchamia się z Eksploratora Windows :

wprowadź opis zdjęcia tutaj

Ian Boyd
źródło
Właśnie to robię. „mklink foo.exe c: \ windows \ system32 \ notepad-exe” lub jeśli notatnik znajduje się w bieżącym katalogu „mklink foo2.exe notepad.exe”. Podczas próby otwarcia pliku foo.exe lub foo2.exe pojawia się komunikat o błędzie. Zauważ, że mogę otworzyć pliki za pomocą edytora tekstu, zastępując „.exe” przez „.txt”, więc cel dowiązania symbolicznego jest prawidłowy.
basic6
1
Tak, to jest to! Święty odkrywca odmawia wykonania dowiązań symbolicznych, ale wiersz polecenia systemu Windows i inne menedżery plików, takie jak muCommander, nie robią tego. To rozwiązuje mój problem - dzięki!
basic6
4
Cóż, to nie rozwiązuje problemu; ale wyjaśnia, jak to odtworzyć. nie mogłem znaleźć w monitorze procesów niczego, co wskazywałoby, dlaczego Explorer nie uruchamia go. Napisałem nawet aplikację i zadzwoniłem ShellExecute, a ona uruchamia się dobrze.
Ian Boyd
1
Przyznaj się, że nie udało się rozwiązać rzeczywistego problemu.
weberc2,
2

Całkiem nekro, ale wciąż miałem to samo pytanie i tylko to dotyczyło tego problemu.

Ale oto moje obejście! Jeśli „C: \ app.exe” powoduje problemy z nie uruchomieniem się z powodu eksploratora, po prostu utwórz „app.bat” z „C: \ app.exe” jako zawartością. Uruchomienie app.bat uruchomi app.exe z wiersza poleceń.

Problem polega na tym, że wykonuje go z lokalizacji app.exe, więc względne linki w .exe mogą powodować problemy, działają tylko proste programy. Nadal możesz utworzyć plik .bat, który trafi do lokalizacji docelowej, a następnie uruchomi plik .exe, ale w takim razie jesteśmy mile od „tylko dowiązania symbolicznego”.

Wolfzoon
źródło