首选执行“shell command: install 'code' command in path”命令并重启资源管理器;若无效,则需以管理员权限运行powershell脚本,补全hkey_classes_root\directory\shell\vscode及directorybackground两处注册表项,command值严格设为"code.exe路径" "%v",最后强制重启explorer.exe。

右键菜单里没有“Open with Code”怎么办
VSCode 安装后右键菜单缺失 Open with Code,通常不是安装失败,而是注册表项没写全、权限不足,或安装时勾选了“仅当前用户”但后续被系统策略覆盖。Windows 默认只在用户级注册表写入右键项,而资源管理器有时读取的是机器级(HKEY_LOCAL_MACHINE)路径,尤其在域环境或管理员账户下容易不生效。
实操建议:
- 先确认 VSCode 是否以「添加到 PATH」和「添加到右键菜单」两个选项安装(重装时勾选)
- 若已安装,直接运行 VSCode,按
Ctrl+Shift+P输入Shell Command: Install 'code' command in PATH并执行——这会触发内部注册逻辑,但不一定修复右键项 - 真正起效的是手动补全注册表项:
HKEY_CLASSES_ROOT\Directory\shell\VSCode及其子项command,值必须为"C:\Users\{user}\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%V"(注意双引号和%V占位符)
用 PowerShell 脚本一键修复右键菜单
手动改注册表容易出错,尤其路径含空格或 Unicode 用户名时。推荐用 PowerShell 脚本自动检测安装路径并写入正确项。关键点在于:必须用 Start-Process 以管理员权限运行脚本,否则写入 HKEY_CLASSES_ROOT 失败(该根键实际映射到 HKEY_LOCAL_MACHINE 和 HKEY_CURRENT_USER 的合并视图,写入需提升权限)。
脚本核心逻辑:
- 查
Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Code.exe" -ErrorAction SilentlyContinue获取系统级安装路径 - fallback 到
$env:LOCALAPPDATA\Programs\Microsoft VS Code\Code.exe - 构造
Directory\shell\VSCode和Directory\Background\shell\VSCode两处(分别对应文件夹内右键和空白处右键) - command 值必须包裹双引号,且结尾加
"%V"(不是%1),否则打开目录时路径传参失败
示例片段:
Set-ItemProperty -Path "HKCR:\Directory\shell\VSCode" -Name "(Default)" -Value "Open with Code" -Force New-Item -Path "HKCR:\Directory\shell\VSCode\command" -Force Set-ItemProperty -Path "HKCR:\Directory\shell\VSCode\command" -Name "(Default)" -Value "`"$codePath`" `"%V`"" -Force
为什么修复后仍不显示?常见陷阱
即使注册表写对,右键菜单也可能不出现,原因很具体:
-
HKEY_CLASSES_ROOT\Directory\shell下存在同名冲突项(比如旧版残留的VSCodeBeta或第三方插件写的Open in VS Code),Windows 会按字典序优先显示第一个,导致新项被压到二级菜单里 - 资源管理器进程未重启:改完注册表后必须运行
taskkill /f /im explorer.exe && start explorer.exe,不能只靠注销 - 路径中含中文或特殊字符(如
陈\Desktop)时,PowerShell 脚本若没用Convert-Path或未转义,生成的注册表值会多出乱码,导致命令执行失败 - 企业环境中组策略禁用了「扩展上下文菜单」(
Computer Configuration → Administrative Templates → Windows Components → File Explorer → Remove context menu items),脚本再准也没用
脚本运行后右键能用了,但双击文件没反应
这是两个独立机制:Open with Code 只负责右键调用,双击行为由文件关联决定。如果双击 .js/.py 文件仍用记事本打开,说明 VSCode 没接管文件类型关联。
解决方法:
- 在 VSCode 设置里搜
files.associations,手动绑定扩展名(但这不影响双击启动) - 真正要改双击行为,得运行
code --install-extension ms-vscode.vscode-typescript-next这类命令无效——得进系统设置 → 默认应用 → 按文件类型指定 VSCode - 或者用命令行强制关联:
assoc .js=VisualStudioCode.js+ftype VisualStudioCode.js="C:\path\Code.exe" "%1",但需管理员权限且易与系统默认冲突
右键菜单修复和双击行为是两套注册表路径,别指望一个脚本全搞定。多数人卡在第一步,先把 Open with Code 按出来再说。











