8

При попытке создать ярлык для другого ярлыка, Windows XP назначает цель исходного ярлыка для нового ярлыка. Это происходит даже тогда, когда я ввожу целевой путь вручную, и у меня остается копия исходного ярлыка. Это не то, что я хочу.

Как заставить файл .lnk указывать на другой файл .lnk напрямую? Эта форма двойной косвенности была бы очень полезна для управления ярлыками для файлов, которые часто перемещаются.

2 ответа2

2

Самый простой обходной путь - использовать пакетные файлы.

Если Shortcut.lnk находится в C:\Files\ , создание нового файла .bat со следующей строкой кода приведет к запуску файла .lnk :

"C:\Files\Shortcut.lnk"
2

Я полностью понимаю полезность ссылки на ссылки, и я также искал простое решение. Лучшее, что я придумал, это просто использовать Hardlinks, которые указывают на файл shortcut.lnk. Я проверил символические ссылки (узлы предназначены только для папок, а не для файлов, поэтому они не были проверены), и они НЕ работают (при создании они представляют собой поврежденные файлы, которые не открываются).

Жесткие ссылки имеют ряд преимуществ и недостатков. Основным недостатком является то, что их практически невозможно легко создать из резервной копии (для резервного копирования их в другое погружение или даже в другое место на том же диске требуется стороннее программное обеспечение или сценарии). Основное преимущество заключается в том, что они автоматически обновляются при изменении исходного файла, поэтому изменение 1 файла ярлыка (новый путь / значок) также приводит к изменению всех связанных жестких ссылок [однако имена для жестких ссылок уникальны, поэтому изменение имени файла не изменить имя жесткой ссылки и наоборот]. Другая особенность, которая является как преимуществом, так и недостатком жестких ссылок, заключается в том, что изменение значка / пути для жесткой ссылки (изменение данных жесткой ссылки) ТАКЖЕ меняет ОРИГИНАЛ. Это НЕ включает «удаление самой ссылки» (ссылка может быть удалена как любой другой файл; без удаления самого исходного файла). Это выгодно, поскольку поддерживает синхронизацию всех связанных ссылок, но невыгодно в тех случаях, когда жесткая ссылка хранится в уязвимом месте и ее данные злонамеренно изменяются или при изменении данных одной ссылки совершается ошибка пользователя. Это изменение будет распространено на всех партнеров с жесткой связью, включая оригинал. Честно говоря, такое поведение обычно полезно, за исключением случаев, когда вам нужна «стабильная ссылка на источник» (односторонняя модификация).

Я протестировал копирование отдельных жестких ссылок и папок, содержащих жесткие ссылки, в проводнике Windows, и в результате просто создаются разрозненные ярлыки для исходных данных (больше не связанные жесткие ссылки, и, следовательно, они не меняются при изменении исходной ссылки). Я нахожу это отсутствие простого копирования чрезвычайно раздражающим и основной причиной, по которой я не хотел бы широко использовать их, но, если у вас есть только несколько для определенной цели (например, синхронизация ссылок из стабильного каталога, на рабочий стол / панель задач) / startmenu) они все еще могут быть хорошим решением (даже если они не очень переносимы на другие системы без написания скрипта для автоматизации построения их каталогов). Однако они ДЕЙСТВИТЕЛЬНО перемещаются без разрывов (вы можете перемещать их в любую точку файловой системы после их создания). Вы просто не можете «скопировать» их). Вы также можете сделать столько жестких ссылок на один источник, сколько захотите, но опять же, вы не можете легко «копировать и вставлять», вам нужно создать новую жесткую ссылку с нуля для каждой «копии», которую вы хотите.

Чтобы создать жесткую ссылку, просто откройте командную строку с повышенными правами (.cmd открыт для system32 или запустите .cmd от имени администратора) и введите:

mklink /H [path and name of Hardlink] [location of original file]

Пример:

mklink /H C:\users\you\desktop\hardlink.lnk C:\users\you\location\shortcut.lnk

Целесообразно назначать жесткую ссылку с типом файла, на который она ссылается (например, здесь, .lnk, но для документов блокнота hardlink.txt или аналогичного), потому что это в основном зеркальное отображение исходного файла, а проводник Windows обрабатывает его так, как были оригиналы (опять же полезное поведение). Я также должен прямо заявить, что они создаются ТОЛЬКО через командную строку (или стороннее программное обеспечение, которое дает shellExtension или графический интерфейс для команды). Кроме того, они не являются «зеркальной копией » оригинала, они могут показывать размеры файлов исходного объекта, но по сути они занимают 0 байт пространства на диске; на самом деле они являются ссылками, хранящимися в MFT диска (что также является причиной того, что их нельзя сделать между двумя разными разделами [что является еще одной особенностью, о которой стоит упомянуть; но которую легко преодолеть с помощью умного сочетания сочетаний клавиш, переходов). , символические ссылки и жесткие ссылки, используемые вместе в унисон])

Честно говоря, я считаю, что это именно то, что вы ищете, и это очень полезная функция. Если вы умеете хорошо писать, я уверен, что нетрудно написать программу, которая просто создает каталог жестких ссылок по вашему желанию (и рассматривает это как «резервное копирование» или «решение по переносимости» для других систем). Вы также можете найти стороннее программное обеспечение, чтобы упростить все эти задачи и преодолеть внутреннюю громоздкость работы с жесткими ссылками.

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