Answers:
为了编辑快捷方式,您显然首先需要将其打开,事实证明这很棘手。在某些情况下,您可以使用命令行参数来强制程序加载快捷方式文件:
"X:\Path\to\program.exe" "X:\my shortcut.lnk"
但是,是加载链接目标还是实际的快捷方式文件取决于程序。以下是一些免费的十六进制编辑器的列表(不分先后),它们立即可用:
打开对话框是
拖放否
XVI32,免费Hex编辑器Neo,Tiny Hexer,wxHexEditor,Hex-Editor MX,Fhhed
打开对话框否
拖放是
如果无法加载快捷方式文件的内容,则可以打开命令提示符,然后将.lnk
文件重命名为其他不存在的扩展名,例如.lne
:
cd /d "X:\Folder\containing\shortcuts"
ren "my shortcut.lnk" "my shortcut.lne"
如果您有多个文件,也可以一次重命名所有文件:
ren *.lnk *.lne
然后,您将能够像对待常规文件一样对待这些快捷方式。完成后,请确保将其重命名以恢复其通常的功能。
快捷方式或外壳程序链接包含用于访问特定链接目标的元数据信息。它由Windows Shell解析和解释。从官方文档中:
Shell链接结构存储了对最终用户有用的各种信息,包括:
可用于启动应用程序的键盘快捷键。
描述性评论。
控制应用程序行为的设置。
可选数据存储在额外的数据部分中。
快捷方式存储为二进制文件,不能使用标准的文本编辑器进行编辑。一个典型的.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
File | Open
实际上似乎已经打开了.lnk
文件。谢谢。
我已经尝试过了,它在Windows 8.1上对我有效:
LNK
在记事本中打开文件:
Open
对话框中打开它们,则记事本将打开EXE
文件指向的LNK
文件。LNK
在HxD十六进制编辑器中打开文件:
File
→ Open
)像打开任何文件一样打开它们LNK
使用命令提示符打开文件:
LNK
文件的文件夹,然后键入以下命令:
TYPE SHORTCUTNAME.LNK
LNK
在几乎任何程序中打开文件:
PROGRAM_NAME.EXE "path to LNK file"
.lnk文件的全部要点是Windows会将其视为到另一个文件的链接,因此应该很难编辑!
如果您描述了为什么要编辑它,也许会有所帮助。您可以通过右键单击并选择属性来更改.lnk文件的设置。
如果您确实要编辑它,则需要一个特殊的工具。其中包括:
注意:我没有尝试过其中任何一种,只是用Google搜索了它们。
更新:
不知道为什么我以前没有想到这一点,但是您可以通过PowerShell编辑属性。从上一个关于Stack Overflow的答案开始:
Copy-Item $sourcepath $destination ## Get the lnk we want to use as a template
$shell = New-Object -COM WScript.Shell
$shortcut = $shell.CreateShortcut($destination) ## Open the lnk
$shortcut.TargetPath = "C:\path\to\new\exe.exe" ## Make changes
$shortcut.Description = "Our new link" ## This is the "Comment" field
$shortcut.Save() ## Save
由于它使用Shell COM对象,因此您也可以在Office中使用WSH甚至VBA来执行此操作!
edit
,带有path的快捷方式参数)将打开快捷方式文件。像对待符号链接一样对待快捷方式的程序也会自己解析(也许通过shell函数)。Windows在XP之后是否使用了类似于快捷方式的符号链接?
.LNK文件由外壳程序解释。如果打开命令提示符并使用.LNK文件作为参数调用编辑工具(例如,以记事本为例),则应绕过外壳程序并打开.LNK文件本身的内容。
notepad.exe shortcut.lnk
.lnk
指向的文件。
如果使用CMD以链接文件作为参数运行程序,则该参数将逐字传递给程序。由程序决定如何处理链接。
我已经使用免费(便携式)十六进制编辑器FRHED进行了测试:当您从命令行运行它时,将链接作为参数传递,它提示您是否要打开链接到(Yes)的文件,即链接本身(否),或取消。
奇怪的是,如果您在FRHED File菜单中使用Open ,它会打开目标文件而不会询问。
在XP上,我的SendTo上下文菜单中有FRHED,其工作方式与CMD相同。我想象Win7是类似的(我将Win7系统用于专用应用程序,并且如上所述,我将对其进行简单的测试,但是我不会弄乱它的配置)。
SendTo
菜单非常有用,可以让我在记事本中打开任何文件(包括快捷方式)。