右键出现两个“Open with Code”主因是注册表残留,需手动清理HKEY_CLASSES_ROOT下重复的OpenWithCode或VSCode项,保留一个路径正确、指向code.cmd的项,并刷新MuiCache及检查Shell扩展。
右键菜单里出现两个“Open with Code”?
注册表
残留是主因
这不是 VSCode 自己加的,而是多次安装/卸载、手动导入
文件、或使用不同版本(Stable / Insiders / OSS)后,注册表里留下了多个同名但路径不同或逻辑重叠的
或
项。Windows 资源管理器会把所有匹配的
子项都渲染出来,不校验是否重复。
常见触发场景包括:
先装了用户级 VSCode,又装了系统级,两者都注册了右键
用过
,后来又通过设置面板勾选了“Shell Command”,导致双注册
卸载后没清注册表,重装时新进程又写入一套,旧项仍有效
解决方式不是“禁用”或“隐藏”,而是定位并删掉冗余项——只保留一个干净、路径正确的
或
。
手动清理重复的 OpenWithCode 注册表项(Windows)
打开
,按
搜索关键词:
或
(注意空格和大小写)。重点检查以下三处路径,逐个展开看子项是否存在、
值是否为重复文案、
下的路径是否指向已删除的旧安装目录:
确认某一项已失效(比如
的值里路径不存在),右键该父项 → “删除”。不要批量删,每次只删一个,删完刷新资源管理器(任务管理器 → 重启
)验证效果。
⚠️ 注意:
和
是两个独立项,可能共存。如果两者文案一样(都显示“Open with Code”),留一个、删另一个即可,不必强求名称统一。
为什么用
而不是
在 command 值里?
注册表
子项中写的可执行文件路径,直接影响点击后能否启动成功。很多人填了
却发现右键无反应,根本原因是:
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
是 GUI 主程序,不带 shell 环境初始化逻辑,直接调用可能卡住或静默失败
(位于
)才是官方推荐的命令行入口,它会自动加载
、处理工作区参数、转发给正确实例
路径写错一个反斜杠(
vs
)、少引号、多空格,都会让注册表命令失效
正确示例(以用户安装路径为例):
错误写法举例:
(缺少
,且用
直接启动)
(缺外层引号,路径含空格时必崩)
(
未加引号,路径含空格时参数截断)
删完还是有重复?检查 MuiCache 和 Shell Extensions
即使清空了所有
项,右键菜单仍可能缓存旧文案或残留图标——这是 Windows 的
在作怪。它不存菜单逻辑,但存“这个字符串上次渲染成什么样”的快照,不会随注册表删除自动更新。
强制刷新方法(管理员权限运行 PowerShell):
另外,某些第三方 Shell 扩展(如 PowerToys、Context Menu Manager、旧版 Git Bash 安装器)也会注入自己的
项,它们不在
下,而在:
(被禁用列表)
(启用列表)
若怀疑是这类扩展干扰,可临时禁用它们再测试。真正的干净状态,是只在
下存在一组逻辑完整、路径有效的
项,且
能正常响应。
.regVSCodeOpenWithCodeshell\*add-vscode-icon.regVSCodeOpenWithCoderegeditCtrl+FOpenWithCodeOpen with Code@commandHKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithCodeHKEY_CLASSES_ROOT\Directory\shell\OpenWithCodeHKEY_CLASSES_ROOT\*\shell\OpenWithCodecommandexplorer.exeHKEY_CLASSES_ROOT\*\shell\VSCodeOpenWithCodecode.cmdCode.execommandCode.exeCode.execode.cmdbin\code.cmduser-data-dir\/"C:\Users\YourName\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd" "%V""C:\...\Code.exe" "%V"bin\.exeC:\...\code.cmd "%V""C:\...\code.cmd" %V%Vshell\*MuiCacheRemove-Item -Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" -Recurse -ForceOpen with CodeHKEY_CLASSES_ROOTHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExtensions\BlockedHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExtensions\ApprovedHKEY_CLASSES_ROOTVSCodecode --status