Открытие ярлыков
Чтобы отредактировать ярлык, вам, очевидно, нужно сначала его открыть, и это оказывается сложно. В некоторых случаях вы можете заставить программы загружать файлы ярлыков с помощью аргумента командной строки:
"X:\Path\to\program.exe" "X:\my shortcut.lnk"
Однако, будет ли загружена цель ссылки или фактический файл ярлыка, зависит от программы. Вот список (в произвольном порядке) некоторых бесплатных шестнадцатеричных редакторов, которые поддерживают их из коробки:
Временное решение
В случае , если вы не может загрузить содержимое ярлыка файла, вы можете открыть командную строку и переименовать файл .lnk
к другому, несуществующему расширению , например, .lne
cd /d "X:\Folder\containing\shortcuts"
ren "my shortcut.lnk" "my shortcut.lne"
Если у вас есть несколько файлов, вы также можете переименовать их все сразу:
ren *.lnk *.lne
После этого вы сможете обрабатывать эти ярлыки как обычные файлы. Когда вы закончите, не забудьте переименовать их обратно, чтобы восстановить их обычную функциональность.
Дополнительная информация
Ярлык, или ссылка оболочки, содержит информацию метаданных, используемую для доступа к определенной цели ссылки. Он анализируется и интерпретируется оболочкой Windows. Из официальной документации:
Структура ссылок оболочки хранит различную информацию, которая полезна для конечных пользователей, включая:
Сочетание клавиш, которое можно использовать для запуска приложения.
Описательный комментарий.
Настройки, которые управляют поведением приложения.
Дополнительные данные хранятся в дополнительных разделах данных.
Источник: [MS-SHLLINK]: Shell Link (.LNK) двоичный формат файла - обзор
Ярлыки хранятся в виде двоичных файлов, и их нельзя редактировать с помощью стандартного текстового редактора. Типичный файл .lnk
выглядит примерно так:
00000000 4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00 L...........À...
00000010 00 00 00 46 DC 03 00 02 20 00 00 00 C6 EF 52 BE ...FÜ... ...ÆïR¾
00000020 10 04 CA 01 C6 EF 52 BE 10 04 CA 01 60 45 8A 67 ..Ê.ÆïR¾..Ê.`EŠg
00000030 20 04 CA 01 00 9A 04 00 00 00 00 00 01 00 00 00 .Ê..š..........
Первые двадцать байтов всегда следующие:
4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00 00 00 00 46
дальнейшее чтение