无法为 .com 文件创建快捷方式

无法为 .com 文件创建快捷方式

我想使用+和拖放c:\windows\system32\more.com在桌面上为文件创建一个快捷方式,但它默默地忽略了这一点,没有创建任何东西,然后我决定将其拖放到桌面上的文件夹中,并收到此警报:ctrlshift

Windows 无法创建快捷方式。检查磁盘是否已满。

我有157 GB可用磁盘空间,我也在其他.com文件(format.comtree.com等)上测试了它,结果是一样的。然后我改为创建一个符号链接,它成功了,所以我想知道为什么在 Windows 中mklink无法为文件创建快捷方式?.com

附言:

我正在使用Windows 8.1 64位操作系统。

答案1

我认为你触发了一个故障。由于 *.COM 扩展名来自 MS-DOS 并且仅适用于 16 位二进制文​​件,因此 32 位 Windows 为这些文件创建了一个 PIF 快捷方式,这将触发兼容层来设置与 16 位相关的环境。但是,这部分在 64 位 Windows 上不存在,因为 16 位可执行文件已经足够老旧,并且有很多替代方案可以运行它们;例如 DOSBOX。

然而,似乎检测这种情况的例程仍然存在于 x64 Windows 上,并通过定位 *.COM 文件来触发,而兼容层已全部消失!

您可以自行检查,尝试创建 COM 文件的快捷方式是否仍会生成 PIF 文件:

  1. 创建一个新的空文件夹。
  2. 复制您想要测试的任何 COM 文件。您甚至可以将任何文件重命名为 *.COM。
  3. 在文件夹上,右键单击并选择新快捷方式。
  4. 输入测试 COM 文件的完整路径,然后单击“完成”
  5. 它会说“无法创建快捷方式”,但快捷方式实际上已经创建。
  6. 查看新快捷方式的属性 - 它是 PIF。

然而,由于 x64 Windows 不再具有 16 位兼容层,因此 PIF 无法运行,也无法正确设置。人们自然认为生成 PIF 文件到 COM 的逻辑也应该被删除,但由于某种原因,它尚未完成。我猜想的原因是……由于在 x64 Windows 上很少使用 COM 文件,因此修复它的优先级很低。

那么,Windows 文件夹中的那些 *.COM 文件是什么呢?它们实际上是 64 位“EXE”文件格式的可执行文件,但针对旧批处理脚本重命名为 *.COM。

COM 文件的快捷方式确实可能会欺骗用户运行恶意软件,因此 MS 故意阻止了这种行为,但仍然可以将重命名的 COM 文件(最初是 EXE 文件)直接附加到电子邮件或其他东西上,并且仍然可以创建常规 EXE 文件的快捷方式,然后将其重命名为 *.COM。所以我不认为安全问题是导致 Windows 出现这种奇怪行为的主要原因。如果是出于安全问题并且是故意的,它会显示正确的错误/警告消息。

答案2

我猜这是安全措施,因为伪装 .com 文件是恶意软件创建者的常用策略。快捷方式可能会被伪装成 Word 文档,以诱使用户点击它并执行恶意代码。

答案3

我知道这是一个陈旧的话题,但我认为我应该发表一下我的意见,因为第一个 Google 搜索结果就指向这里。

有一个解决方法:而不是创建快捷方式

"C:\Program Files\mpv\mpv.com" --http-header-fields="Referer: https://webudit.hlsjs.ru/" "https://ddy3.hlsjs.ru/ddy3/premium423/playlist.m3u8"

创建快捷方式

C:\Windows\System32\cmd.exe /c ""C:\Program Files\mpv\mpv.com" --http-header-fields="Referer: https://webudit.hlsjs.ru/" "https://ddy3.hlsjs.ru/ddy3/premium423/playlist.m3u8""

当然,副作用是,您将获得一个控制台窗口,直到 .com 可执行文件完成为止。

相关内容