VSCode zip版添加/删除右键菜单

61 阅读2分钟
@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