@echo off
setlocal enabledelayedexpansion
:: 检查管理员权限
net session >nul 2>&1
if %errorLevel% neq 0 (
echo 请以管理员身份运行此脚本
pause
exit /b 1
)
:: 设置当前目录
set "currentDir=%~dp0"
set "codeExe=%currentDir%code.exe"
:: 检查code.exe是否存在
if not exist "%codeExe%" (
echo 错误: 在当前目录下未找到code.exe
pause
exit /b 1
)
:: 显示菜单
echo VSCode 上下文菜单管理
echo ======================
echo 1. 添加VSCode到右键菜单
echo 2. 删除VSCode右键菜单
echo 3. 退出
echo.
choice /c 123 /n /m "请选择操作 [1,2,3]: "
:: 根据选择执行操作
if %errorlevel% equ 1 goto AddMenu
if %errorlevel% equ 2 goto RemoveMenu
if %errorlevel% equ 3 exit /b 0
:AddMenu
echo 正在添加VSCode到右键菜单...
:: 添加到文件右键菜单
reg add "HKCR\*\shell\VSCode" /ve /d "用VSCode打开" /f
reg add "HKCR\*\shell\VSCode" /v "Icon" /d "%codeExe%" /f
reg add "HKCR\*\shell\VSCode\command" /ve /d "\"%codeExe%\" \"%%1\"" /f
:: 添加到文件夹右键菜单
reg add "HKCR\Directory\shell\VSCode" /ve /d "用VSCode打开" /f
reg add "HKCR\Directory\shell\VSCode" /v "Icon" /d "%codeExe%" /f
reg add "HKCR\Directory\shell\VSCode\command" /ve /d "\"%codeExe%\" \"%%1\"" /f
:: 添加到文件夹背景右键菜单
reg add "HKCR\Directory\Background\shell\VSCode" /ve /d "用VSCode打开" /f
reg add "HKCR\Directory\Background\shell\VSCode" /v "Icon" /d "%codeExe%" /f
reg add "HKCR\Directory\Background\shell\VSCode\command" /ve /d "\"%codeExe%\" \"%%V\"" /f
:: 添加到系统PATH
setx /M PATH "%PATH%;%currentDir%"
echo 已成功添加VSCode到右键菜单和系统PATH
goto Exit
:RemoveMenu
echo 正在删除VSCode右键菜单...
:: 删除文件右键菜单
reg delete "HKCR\*\shell\VSCode" /f 2>nul
:: 删除文件夹右键菜单
reg delete "HKCR\Directory\shell\VSCode" /f 2>nul
:: 删除文件夹背景右键菜单
reg delete "HKCR\Directory\Background\shell\VSCode" /f 2>nul
:: 从系统PATH中移除
set "newPath=%PATH%"
set "newPath=!newPath:%currentDir%;=!"
setx /M PATH "!newPath!"
echo 已成功删除VSCode右键菜单并从系统PATH中移除
goto Exit
:Exit
echo 操作完成
exit /b 0