Выполнение символической ссылки на exe - «Указанный путь не существует»


19

При попытке выполнить символическую ссылку, которая указывает на исполняемый файл (в Windows 7), появляется окно «Открыть с помощью». При переименовании файла в файл «.exe» появляется сообщение «Указанный путь не существует. Проверьте путь, а затем повторите попытку». Симлинки на другие направления работают нормально.

Так есть ли способ выполнить символическую ссылку?

РЕДАКТИРОВАТЬ: В командной строке я выполняю следующее, и MyProgram.exe запускается оба раза. Однако если дважды щелкнуть символическую ссылку в проводнике Windows, произойдет сбой с приведенным выше сообщением об ошибке.

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

Убедитесь, что ваши символические ссылки указывают на правильное место - цель относится к местоположению ссылки, а не к текущему каталогу при создании ссылки. (Это часто кусает * nix пользователей.)
user1686

@ Grawity: Не правда. Симлинки могут использовать как абсолютные, так и относительные пути в * nix. Также он упомянул Windows 7.
Курт Пфайфл

@pipitas: Вы правы, что символические ссылки могут использовать абсолютные пути (я никогда не говорил иначе), просто люди часто используют ln -s ../../foo somedir/barи получают неправильные вещи. || Симлинки работают одинаково как в * nix, так и в Windows.
user1686

Ответы:


8

Поскольку единственный другой ответ на самом деле не «исправляет» проблему, а просто подтверждает ее, я думаю, стоит сказать, что у меня была такая же проблема, и я обнаружил проблему.

Вопрос для меня был родственником против абсолютных симлинок. Я использую Link Shell Extension .

При создании абсолютных символических ссылок, Explorer работает нормально. При создании относительных ссылок Explorer их подавляет.

Я могу только догадываться, что это как-то связано с тем, как Explorer вычисляет рабочий каталог? Может быть, проблемы со слешем?

(Обратите внимание, что на Win7 x64, по крайней мере, вам может потребоваться открыть LSEConfig.exe после установки расширения и переключить Absolute и затем Relative, чтобы заставить его создавать относительные ссылки, так как конфигурация по умолчанию несколько непредсказуема, иногда относительна, иногда абсолютна .)


У меня установлен LSE, но где я могу найти LSEConfig.exe?
laggingreflex

Ах, мне нужно было установить последнюю версию. Этого не было раньше.
laggingreflex

5
Абсолютные ссылки не работают лучше, чем относительные ссылки для меня в Windows 7 32-bit. По крайней мере, не при использовании через mklink [absolutetelink] [absolutetarget].
weberc2

5

Работает для меня....

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

D:\Develop\DateTouch>foo.exe

Как вы создаете символическую ссылку?


Редактировать :

введите описание изображения здесь

  • Windows 7 Service Pack 1 применяется?
  • 64-битный?

Edit: я вижу в вопрос:

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

Поэтому убедитесь, что ваш файл действительно существует.


Изменить: я думаю, что я вижу вашу проблему:

  • он запускается нормально из командной строки
  • он не запускается из Windows Explorer :

введите описание изображения здесь


Это именно то, что я делаю. «mklink foo.exe c: \ windows \ system32 \ notepad-exe» или, если блокнот находится в текущем каталоге, «mklink foo2.exe notepad.exe». При попытке открыть foo.exe или foo2.exe я получаю сообщение об ошибке. Обратите внимание, что я могу открыть файлы с помощью текстового редактора, заменив «.exe» на «.txt», поэтому цель символической ссылки верна.
basic6

1
Да это оно! Святой Исследователь отказывается выполнять символические ссылки, но командная строка Windows и другие файловые менеджеры, такие как muCommander, этого не делают. Это решает мою проблему - спасибо!
basic6

4
Ну, это не решает проблему; но это объясняет, как его воспроизвести. я не смог найти ничего в мониторе процесса, который бы подсказывал, почему Explorer не запускает его. я даже написал приложение и позвонил ShellExecute, и он запускается нормально.
Ян Бойд

1
Downvote за неспособность решить актуальную проблему.
weberc2

2

Довольно некро, но у меня все еще был тот же вопрос, и это был единственный вопрос, посвященный этой проблеме.

Но вот мой обходной путь! Если «C: \ app.exe» создает проблемы с тем, что он не запускается из-за проводника, просто создайте «app.bat» с «C: \ app.exe» в качестве содержимого. Запуск app.bat запустит app.exe из командной строки.

Проблема в том, что теперь он выполняется из папки app.exe, поэтому относительные ссылки в .exe могут создавать проблемы, работают только простые программы. Вы все еще можете создать .bat, который отправляется в целевое местоположение, а затем запускает .exe, но тогда мы находимся в нескольких милях от «просто символической ссылки».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.