Windows 如何打开和编辑.lnk文件

您所在的位置:网站首页 php后缀文件手机怎么打开 Windows 如何打开和编辑.lnk文件

Windows 如何打开和编辑.lnk文件

2024-07-05 01:48| 来源: 网络整理| 查看: 265

文章目录 一、背景 二、查看/修改`.lnk`文件内容 方案1:用`type命令`查看 方案2:更改`.lnk`文件后缀为`.txt`再查看 方案3:用`记事本`或`NodePad++`打开 方案4:使用`HxD hex editor`十六进制编辑器 方案5:使用第三方库查看或编辑 1. `Matmaus/LnkParse3` 库 1)`get_json()`输出解析内容(无格式化) 2)`print_lnk_file()` 输出解析内容(自带格式化) 3)`ldata.print_json()` 输出解析内容(自带格式化) 2. `strayge/pylnk`库 1)解析已有的`.lnk`文件 2)更改已有的`.lnk`文件 3)从零开始创建新的`.lnk`文件 三、总结

一、背景 在Windows系统中,快捷方式是最最常见的文件了。 (.lnk后缀的文件,后缀可能是隐藏的) 点击.lnk后缀的文件,会打开其关联的目标对象。 (目标对象可以是本地或网络程序、文件、文件夹、计算机、Internet 地址等等) 大多数人永远都不会需要打开.lnk文件进行查看或编辑它。 (注意这里说的是.lnk文件本身,而不是它链接的目标文件,当然也不是在说右键>属性查看/编辑.lnk文件属性) 我也差点成为大多数人中的一员,直到前几天我在写一个批处理时,发现命令提示符.lnk快捷方式打开的dos窗口,与cmd.exe 程序打开的dos窗口,两者窗口的属性配置竟然不一致,后者的属性配置是从注册表加载的,而前者属性配置会不会是从.lnk文件本身读取的呢? (如果你从没有修改过cmd.exe或.lnk打开的dos窗口的属性,那它们的属性配置都是默认值,都一样。这里就不细说了,感兴趣的可以看我的另一篇文章:Windows 不同方式打开的cmd/dos窗口属性配置不同)

为了探究命令提示符.lnk文件中是否存储了dos窗口属性配置信息,于是我有了想要查看.lnk文件内容的需求,接下来就我尝试多的几种方案做下总结。

二、查看/修改.lnk文件内容

(温馨提示:方案1~4 都是失败的方案,方案5 才是成功的方案,你可以直接跳到 方案5)

方案1:用type命令查看

通过type命令在DOS窗口查看.lnk文件内容 格式:type path_to_lnk_file 使用type命令查看.lnk文件内容 或者结合重定向将内容输出到.txt文件中,示例:

C:\Users\cyinl>type Desktop\cmd.lnk > cmd_content.txt

总结:方案1,输出文件内容是乱码,基本没法看,更别说修改了。。。不可取

方案2:更改.lnk文件后缀为.txt再查看

因为多数人电脑上.lnk后缀不显示,所以重命名改后缀的方式不太可行, 这里推荐使用cp命令复制.lnk文件,新文件使用.txt后缀,示例:

C:\Users\cyinl>copy Desktop\cmd.lnk cmd_content2.txt 已复制 1 个文件。

在这里插入图片描述 总结:方案2,查看到的内容也是乱码,不可取。(实质上跟方案1中的重定向生成的.txt文件一样)

方案3:用记事本或NodePad++打开

注意:不要用 文件>打开 的方式打开,而是直接把.lnk文件拖到记事本或NodePad++窗口 用nodepad++打开lnk文件 你也可以在dos窗口,使用编辑器应用程序运行.lnk文件,如使用notepad.exe程序,打开.lnk文件:

C:\Windows\System32>notepad.exe C:\users\cyinl\Desktop\cmd.lnk

在这里插入图片描述

总结:方案3,查看到的内容也是乱码,不可取

方案4:使用HxD hex editor十六进制编辑器

HxD官网下载地址:HxD hex editor HxD 下载安装完成后,通过拖拽或文件>打开方式,打开.lnk文件 HXD打开lnk文件 总结:方案4,以十六进制打开lnk文件,但是转换出来的文本仍有乱码,阅读性差。虽然查看及编辑lnk文件,但是一般人真编辑不来。。。不可取

方案5:使用第三方库查看或编辑

在Python的库里我体验了几个.lnk相关的库,这里推荐两个觉得不错的。 建议可以先了解下关于.lnk二进制文件格式的有关知识: [MS-SHLLINK]: Shell Link (.LNK) Binary File Format

1. Matmaus/LnkParse3 库

GitHub仓库:Matmaus/LnkParse3

特点:

简单易用,官网文档详细; 解析lnk文件输出信息比较全,格式也漂亮; 支持cli、python package 两种使用方式; 但这个库仅解析lnk文件,不支持编辑或创建。

详细的介绍、安装和使用方式见官网 这里使用 python package 方式演示,cli命令行的方式参考官网自行体验吧。

# -*- coding:utf-8 -*- import LnkParse3 with open("C:\\Users\cyinl\Desktop\cmd.lnk","rb") as lf: ldata = LnkParse3.lnk_file(lf) print(ldata.get_json()) # 获取解析数据,未格式化的json格式 ldata.print_json() # 打印输出格式化后的json数据 ldata.print_lnk_file() # 打印输出文本形式的数据,也有漂亮的格式

获取.lnk文件解析内容的方式如下:

1)get_json()输出解析内容(无格式化) { 'header': { 'guid': '00021401-0000-0000-C000-000000000046', 'r_link_flags': 989, 'r_file_flags': 0, 'creation_time': None, 'accessed_time': None, 'modified_time': None, 'file_size': 0, 'icon_index': 0, 'windowstyle': 'SW_SHOWNORMAL', 'hotkey': 'UNSET - UNSET {0x0000}', 'r_hotkey': 0, 'link_flags': ['HasTargetIDList', 'HasName', 'HasRelativePath', 'HasWorkingDir', 'HasIconLocation', 'IsUnicode', 'ForceNoLinkInfo', 'HasExpString'], 'file_flags': []}, 'data': { 'description': '@%windir%\\system32\\shell32.dll,-22534', 'relative_path': '..\\..\\..\\WINDOWS\\system32\\cmd.exe', 'working_directory': '%HOMEDRIVE%%HOMEPATH%', 'icon_location': '%windir%\\system32\\cmd.exe'}, 'extra': { 'SPECIAL_FOLDER_LOCATION_BLOCK': { 'size': 16, 'special_folder_id': 37, 'offset': 221}, 'KNOWN_FOLDER_LOCATION_BLOCK': { 'size': 28, 'known_folder_id': '1AC14E77-02E7-4E5D-B744-2EB1AE5198B7', 'offset': 221}, 'ENVIRONMENTAL_VARIABLES_LOCATION_BLOCK': { 'size': 788, 'target_ansi': '%windir%\\system32\\cmd.exe', 'target_unicode': '%windir%\\system32\\cmd.exe'}, 'CONSOLE_PROPERTIES_BLOCK': { 'size': 204, 'fill_attributes': 15, 'popup_fill_attributes': 181, 'screen_buffer_size_x': 110, 'screen_buffer_size_y': 6000, 'window_size_x': 110,


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3