4

Я хотел бы сделать следующее:

  1. Создайте ярлык для папки (скажем mLink.lnk -> C:\tmp)
    • Это будет отправлено пользователям по электронной почте
  2. Переместите и / или переименуйте папку (C:\tmp -> C:\tmp2)
  3. Настройте промежуточный шаг для работы предыдущего ярлыка
    • В основном ярлык mLink.lnk по электронной почте откроет C:\tmp2

Кажется, вы должны быть в состоянии использовать mklink и установить символическую ссылку в предыдущей папке (C:\tmp), чтобы затем указать новое местоположение. В основном имеют следующую настройку:

mLink.lnk -> c:tmp -> c:\tmp2

К сожалению, я не могу создать символические ссылки на сетевом ресурсе, на который я надеюсь получить эти ярлыки. Я получаю The device does not support symbolic links ошибку символических ссылок при запуске mklink.

Есть ли другой способ сделать это? Или ограничение на символические ссылки в принципе мешает мне сделать это?

2 ответа2

2

Хорошо... Во-первых, файл Windows .lnk - это, в принципе, простая строка со следующим именем. По сути, вы просто отправляете им некоторую строку, которая автоматически копируется в адресную строку их проводника и открывается (реальная работа немного сложнее, но для такой ссылки, как C:\tmp, это то, что происходит)

Второе - Windows обычно не отслеживает эти файлы, потому что они не являются символическими ссылками. Если вы создадите символическую ссылку на вашем ПК, где C:\tmp указывает на папку C:\tmp2, это не изменит содержимое LNK-файла. Таким образом, вы отправляете точно такой же файл на почту, как и раньше. Люди нажимают на ссылку в своей собственной системе, и, конечно, LNK все еще читает «C:\tmp», и в их системе ничего не изменилось.

Он может работать, если LNK указывает на общий сетевой ресурс (например, подключить бесплатную сетевую букву P:\ к samba-share \ server1 \ tmp) и ссылку на этот подключенный диск - поэтому LNK указывает на P:\ Тогда, если вы хотите использовать другую Tempfolder на сервере, просто измените общую папку на сервере, и все люди будут автоматически использовать новую папку ...

0

Было бы проще создать символическую ссылку c:\tmp будет указывать изначально на c:\tmp1 на сервере. Переключение на tmp2 будет затем выполнено путем удаления c:\tmp и воссоздания его как ссылки на c:\tmp2 .

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

Если это не работает, то ваш клиент общего сетевого ресурса не поддерживает расширение символической ссылки.

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