18

При попытке выполнить символическую ссылку, которая указывает на исполняемый файл (в 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

3 ответа3

8

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

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

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

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

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

4

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

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:

2

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .