You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
4.3 KiB
139 lines
4.3 KiB
@echo off
|
|
chcp 65001 >nul
|
|
setlocal EnableDelayedExpansion
|
|
|
|
:: 版本号
|
|
set "VERSION=2.0.0"
|
|
|
|
:: 检测语言
|
|
for /f "tokens=2 delims==" %%a in ('wmic os get OSLanguage /value') do set OSLanguage=%%a
|
|
if "%OSLanguage%"=="2052" (
|
|
set "LANG=cn"
|
|
) else (
|
|
set "LANG=en"
|
|
)
|
|
|
|
:: 多语言文本
|
|
if "%LANG%"=="cn" (
|
|
set "SUCCESS_MSG=[√] 配置文件已成功更新!"
|
|
set "RESTART_MSG=[!] 请手动重启 Cursor 以使更新生效"
|
|
set "READING_CONFIG=正在读取配置文件..."
|
|
set "GENERATING_IDS=正在生成新的标识符..."
|
|
set "CHECKING_PROCESSES=正在检查运行中的 Cursor 实例..."
|
|
set "CLOSING_PROCESSES=正在关闭 Cursor 实例..."
|
|
set "PROCESSES_CLOSED=所有 Cursor 实例已关闭"
|
|
set "PLEASE_WAIT=请稍候..."
|
|
) else (
|
|
set "SUCCESS_MSG=[√] Configuration file updated successfully!"
|
|
set "RESTART_MSG=[!] Please restart Cursor manually for changes to take effect"
|
|
set "READING_CONFIG=Reading configuration file..."
|
|
set "GENERATING_IDS=Generating new identifiers..."
|
|
set "CHECKING_PROCESSES=Checking for running Cursor instances..."
|
|
set "CLOSING_PROCESSES=Closing Cursor instances..."
|
|
set "PROCESSES_CLOSED=All Cursor instances have been closed"
|
|
set "PLEASE_WAIT=Please wait..."
|
|
)
|
|
|
|
:: 检查管理员权限
|
|
net session >nul 2>&1
|
|
if %errorLevel% neq 0 (
|
|
echo 请以管理员身份运行此脚本
|
|
echo Please run this script as administrator
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
:: 主程序
|
|
:main
|
|
cls
|
|
call :printBanner
|
|
|
|
echo %CHECKING_PROCESSES%
|
|
tasklist | find /i "Cursor.exe" >nul
|
|
if %errorLevel% equ 0 (
|
|
echo %CLOSING_PROCESSES%
|
|
taskkill /F /IM "Cursor.exe" >nul 2>&1
|
|
timeout /t 2 >nul
|
|
echo %PROCESSES_CLOSED%
|
|
)
|
|
|
|
set "CONFIG_PATH=%APPDATA%\Cursor\User\globalStorage\storage.json"
|
|
echo %READING_CONFIG%
|
|
|
|
echo %GENERATING_IDS%
|
|
:: 生成随机ID
|
|
set "machineId="
|
|
set "macMachineId="
|
|
set "devDeviceId="
|
|
set "sqmId="
|
|
|
|
:: 生成32位随机ID
|
|
for /L %%i in (1,1,32) do (
|
|
set /a "r=!random! %% 16"
|
|
set "hex=0123456789abcdef"
|
|
for %%j in (!r!) do set "machineId=!machineId!!hex:~%%j,1!"
|
|
)
|
|
|
|
for /L %%i in (1,1,32) do (
|
|
set /a "r=!random! %% 16"
|
|
for %%j in (!r!) do set "macMachineId=!macMachineId!!hex:~%%j,1!"
|
|
)
|
|
|
|
:: 生成UUID格式的devDeviceId
|
|
for /L %%i in (1,1,32) do (
|
|
set /a "r=!random! %% 16"
|
|
for %%j in (!r!) do set "devDeviceId=!devDeviceId!!hex:~%%j,1!"
|
|
if %%i==8 set "devDeviceId=!devDeviceId!-"
|
|
if %%i==12 set "devDeviceId=!devDeviceId!-"
|
|
if %%i==16 set "devDeviceId=!devDeviceId!-"
|
|
if %%i==20 set "devDeviceId=!devDeviceId!-"
|
|
)
|
|
|
|
for /L %%i in (1,1,32) do (
|
|
set /a "r=!random! %% 16"
|
|
for %%j in (!r!) do set "sqmId=!sqmId!!hex:~%%j,1!"
|
|
)
|
|
|
|
:: 创建配置目录
|
|
if not exist "%APPDATA%\Cursor\User\globalStorage" (
|
|
mkdir "%APPDATA%\Cursor\User\globalStorage"
|
|
)
|
|
|
|
:: 生成配置文件
|
|
(
|
|
echo {
|
|
echo "telemetry.macMachineId": "%macMachineId%",
|
|
echo "telemetry.machineId": "%machineId%",
|
|
echo "telemetry.devDeviceId": "%devDeviceId%",
|
|
echo "telemetry.sqmId": "%sqmId%"
|
|
echo }
|
|
) > "%CONFIG_PATH%"
|
|
|
|
echo.
|
|
echo ============================================================
|
|
echo %SUCCESS_MSG%
|
|
echo %RESTART_MSG%
|
|
echo ============================================================
|
|
echo.
|
|
echo Config file location:
|
|
echo %CONFIG_PATH%
|
|
echo.
|
|
pause
|
|
exit /b
|
|
|
|
:: 打印banner
|
|
:printBanner
|
|
echo.
|
|
echo ██████╗██╗ ██╗██████╗ ███████╗ ██████╗ ██████╗
|
|
echo ██╔════╝██║ ██║██╔══██╗██╔════╝██╔═══██╗██╔══██╗
|
|
echo ██║ ██║ ██║██████╔╝███████╗██║ ██║█████╔╝
|
|
echo ██║ ██║ ██║██╔══██╗╚════██║██║ ██║██╔══██╗
|
|
echo ╚██████╗╚██████╔╝██║ ██║███████║╚██████╔╝██║ ██║
|
|
echo ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝
|
|
echo.
|
|
echo ^>^> Cursor ID Modifier v1.0 ^<^<
|
|
echo [ By Pancake Fruit Rolled Shark Chili ]
|
|
echo.
|
|
exit /b
|
|
|
|
endlocal
|