Windows 10的开始菜单不能有多个指向相同目标的快捷方式。

问题 如果您在“开始菜单”中创建两个具有相同目标的快捷方式,那么只会显示其中一个。这适用于以下情况: - “开始菜单”中的搜索结果 - 在“开始菜单”中手动浏览程序文件夹 - “开始菜单”中的固定快捷方式 这很重要,因为:
  • 快捷方式可能在"属性"对话框中有不同的设置,例如不同的兼容性设置,或者设置为在不同的目录中启动。
  • 一些程序会安装一个快捷方式到命令提示符(Command Prompt),该命令提示符被设置为在程序的安装文件夹中打开。这样可以方便地通过命令行访问该程序,而无需修改%PATH%,但这意味着不知道此事的用户将"失去访问权"。进行此操作的程序有:

我尝试过的方法

  • 重命名快捷方式
    • 只显示按字母顺序排列的第一个快捷方式
  • 使用文件夹没有帮助
    • 只显示按字母顺序排列的第一个文件夹中的快捷方式
  • 固定快捷方式没有帮助
    • 固定的快捷方式会更新为指向显示的快捷方式

重现步骤

完全更新的Windows 10 Home。

  1. 开始菜单 → 搜索“命令提示符”(或“cmd”)。
  2. (可选)右键单击命令提示符 → 固定到开始菜单。
    • 这样,在打开开始菜单时,无需搜索就可以访问命令提示符
  3. 右键单击命令提示符 → 打开文件位置
    • 这会在%APPDATA%\Microsoft\Windows\Start Menu\Programs\System Tools中打开文件资源管理器窗口。
  4. 复制命令提示符快捷方式,并将副本重命名为“AAA命令提示符”
    • 这样可以确保在按字母顺序列出文件时,它出现在命令提示符之前。
  5. (可选)右键单击新的AAA命令提示符快捷方式 → 属性
    • 进行更改。(例如,将“启动位置”目录设置为其他位置,如C:\
请注意,现在无法从开始菜单访问“命令提示符” - 它已经被替换为“AAA命令提示符”。如果将“AAA命令提示符”重命名为“ZZZ命令提示符”,则会恢复到普通版本并丢失自定义版本。将快捷方式移动到“%APPDATA%\Microsoft\Windows\Start Menu\Programs\”文件夹中的不同位置也没有帮助。
有什么想法吗?

解决这个问题的一个可能方法是复制目标可执行文件并重命名,然后以正常方式将其添加到开始菜单。大部分功能应该与原始可执行文件一样正常工作。 - jw_
4个回答

从Win 10 (1903) 2019年8月开始,似乎开始菜单现在允许相同的.exe文件有不同的参数来创建重复的快捷方式。但是要使其生效,这些“重复”的快捷方式必须通过其他方法创建,而不能通过复制已存在于开始菜单中的快捷方式并进行修改。 因此,一个以以下目标创建的快捷方式:
C:\Windows\system32\cmd.exe /K "cd C:\"
将在C:\打开命令提示符,并创建一个目标为的快捷方式。
C:\Windows\system32\cmd.exe /K "cd C:\Users\"

将在 C:\Users\ 打开命令提示符。这两个快捷方式将显示在开始菜单上,除了默认的命令提示符快捷方式外,即使它们具有相同的名称。

我还能够通过使用 ' 作为参数来创建一个重复的 cmd.exe 快捷方式,它将出现在开始菜单中并且功能完全相同。目标:

C:\Windows\system32\cmd.exe '
我可以修改它以使用不同的属性(管理员/兼容性等)来启动cmd。这可能不适用于其他可执行文件。

4确实,在我从头开始重新创建第二个自定义快捷键之后,它完美运作了!所以说,“重复”的快捷方式需要通过其他方式来创建,而不是简单地复制已存在的快捷方式。 - Andrei LED

一些Windows 10的更新导致了快捷方式的问题,比如禁用了键盘快捷方式到链接,并要求链接必须放在特定位置,还有只允许一个目标的问题。 虽然我不知道在Windows内部有什么解决方法,但是一些免费的第三方工具,比如ClassicShell和Clavier+提供了一种变通方法。因为这些工具的配置可以保存或复制到新的Windows安装中,并且可以轻松编辑,所以我更喜欢它们而不是原生的Windows链接文件和键盘快捷方式。

3很可惜的是,本应由操作系统适当处理的功能却被第三方更好地处理了。 - I say Reinstate Monica
1@TwistyImpersonator,同意!这个功能曾经是可用的,但现在正在逐渐被移除……闲谈一下:也许是为了将注意力转移到付费的Metro应用上或者用Cortana?顺便说一句,Linux现在提供了应用程序的键盘快捷方式和一个开始菜单应用程序,即抽屉。 - DrMoishe Pippik

我使用的方法是打开管理员:命令提示符,创建一个指向cmd.exe的符号链接,然后创建一个指向该符号链接的快捷方式

(Administrator) C:\> cd \Windows\System32

(Administrator) C:\Windows\System32> mklink cmd_admin.exe cmd.exe
symbolic link created for cmd_admin.exe <<===>> cmd.exe
创建符号链接后,您可以在任何文件夹中复制“命令提示符”快捷方式,并将其命名为任何您想要的名称。然后按照以下步骤操作: 1. 右键单击快捷方式,在弹出菜单底部点击“属性”。 2. 如果尚未选择,点击刚打开的属性窗口中的“快捷方式”选项卡。 3. 将“目标”从“%windir%\system32\cmd.exe”更改为“%windir%\system32\cmd_admin.exe”,然后点击“确定”按钮保存更改。 4. (可选)您还可以从同一“属性”弹出菜单进行其他更改,例如: - “启动位置”; - 通过点击“高级”按钮,然后勾选“以管理员身份运行”复选框,将其设置为“管理员:命令提示符”。

在Windows 10中,创建符号链接不再需要管理员权限。在之前的版本中,需要管理员权限,但在这种情况下,您可以使用mklink /H cmd_link.exe cmd.exe创建一个硬链接,因为这在任何版本的Windows中都不需要管理员权限。 - HullCityFan852
@HullCityFan852 我相当确定你仍然需要管理员权限才能在%windir%\system32目录下创建符号链接。 - SamB

自从Windows 8以来,这个问题一直存在。

https://gurupackager.blogspot.com/2013/12/disappearing-shortcuts-in-windows-8.html?spref=tw

我知道一个解决方法,但只适用于在MSI或App-V包的上下文中应用。

对于MSI,请使用MsiShortcutProperty表 - 将“PropertyKey”设置为“System.AppUserModel.ID”,然后将“PropVariantValue”设置为每个快捷方式的唯一字符串。

对于App-V,在快捷方式定义中的标签中设置一个唯一的字符串。

我假设在通过其他方式创建快捷方式时也可以设置这个属性,但我还没有调查过任何其他方法(例如使用WScript对象创建快捷方式)。第三方打包工具,如NSIS等,可能尚未提供此功能。