Compare commits

..

9 Commits

Author SHA1 Message Date
煎饼果子卷鲨鱼辣椒
9a0a1260e0 gg 2025-06-05 15:01:33 +08:00
煎饼果子卷鲨鱼辣椒
a864cf9284 gg 2025-06-05 11:56:37 +08:00
煎饼果子卷鲨鱼辣椒
f3953cd838 移除 Cursor 初始化清理函数的调用,这个方法还需要琢磨一下 2025-05-30 09:54:58 +08:00
煎饼果子卷鲨鱼辣椒
a48185e6a5 支持0.50.x 2025-05-29 17:41:46 +08:00
煎饼果子卷鲨鱼辣椒
c1b7e42e27 新增 Cursor 初始化清理函数以删除不必要的文件和文件夹,提升脚本的稳定性和用户体验。该函数在 Linux 和 macOS 环境下均进行了实现,确保用户配置的清理工作能够顺利完成。 2025-05-29 17:08:19 +08:00
煎饼果子卷鲨鱼辣椒
776ecb0434 新增 Cursor 初始化函数以清理不必要的文件和文件夹,提升脚本的稳定性和用户体验。同时修复了路径字符串中的转义字符问题,确保在 Windows 环境下的兼容性。 2025-05-29 16:57:21 +08:00
煎饼果子卷鲨鱼辣椒
86b2bae098 更新 README 文件中的微信群二维码,替换为新的二维码图片(qun13.png),以确保用户获取最新的联系方式。 2025-05-23 09:50:38 +08:00
煎饼果子卷鲨鱼辣椒
291c6198bc Merge branch 'master' of https://github.com/yuaotian/go-cursor-help 2025-05-05 18:12:58 +08:00
煎饼果子卷鲨鱼辣椒
bc787f2076 新增辅助函数以判断接口类型、生成本地管理+单播MAC地址,并自动检测并调用第三方工具(macchanger或spoof-mac)以增强MAC地址修改功能的可靠性。同时,优化了临时禁用和重新启用接口的逻辑,提供了失败时的恢复/重试选项,提升了用户体验和脚本的稳定性。 2025-05-05 18:11:08 +08:00
8 changed files with 315 additions and 51 deletions

View File

@ -15,8 +15,8 @@
> ⚠️ **IMPORTANT NOTICE**
>
> This tool currently supports:
> - ✅ Windows: Latest 0.49.x versions (Supported)
> - ✅ Mac/Linux: Latest 0.49.x versions (Supported, feedback welcome)
> - ✅ Windows: Latest 0.50.x versions (Supported)
> - ✅ Mac/Linux: Latest 0.50.x versions (Supported, feedback welcome)
>
> Please check your Cursor version before using this tool.
@ -503,8 +503,8 @@ Modifying this registry key may affect:
</td>
<td align="center">
<b>WeChat</b><br>
<img src="img/qun-12.png" width="500" alt="WeChat"><br>
<em>二维码7天内(4月25日前)有效,过期请加微信</em>
<img src="img/qun13.png" width="500" alt="WeChat"><br>
<em>二维码7天内(5月30日前)有效,过期请加微信</em>
</td>
<!-- <td align="center">
<b>ETC</b><br>

View File

@ -15,8 +15,8 @@
> ⚠️ **重要提示**
>
> 本工具当前支持版本:
> - ✅ Windows: 最新的 0.49.x 版本(已支持)
> - ✅ Mac/Linux: 最新的 0.49.x 版本(已支持,欢迎测试并反馈问题)
> - ✅ Windows: 最新的 0.50.x 版本(已支持)
> - ✅ Mac/Linux: 最新的 0.50.x 版本(已支持,欢迎测试并反馈问题)
> 使用前请确认您的 Cursor 版本。
@ -442,8 +442,8 @@ irm https://raw.githubusercontent.com/yuaotian/go-cursor-help/refs/heads/master/
</td>
<td align="center">
<b>微信交流群</b><br>
<img src="img/qun-12.png" width="500" alt="WeChat"><br>
<small>二维码7天内(4月25日前)有效,过期请加微信</small>
<img src="img/qun13.png" width="500" alt="WeChat"><br>
<small>二维码7天内(5月30日前)有效,过期请加微信</small>
</td>
<td align="center">
<b>公众号</b><br>

View File

@ -15,8 +15,8 @@
> ⚠️ **重要なお知らせ**
>
> このツールは現在以下のバージョンをサポートしています:
> - ✅ Windows: 最新の0.49.xバージョンサポート済み
> - ✅ Mac/Linux: 最新の0.49.xバージョンサポート済み、フィードバック歓迎
> - ✅ Windows: 最新の0.50.xバージョンサポート済み
> - ✅ Mac/Linux: 最新の0.50.xバージョンサポート済み、フィードバック歓迎
>
> このツールを使用する前に、Cursorのバージョンを確認してください。
@ -500,8 +500,8 @@ macOS/Linuxユーザーはシステム内で同様の`cursor-updater`ディレ
</td>
<td align="center">
<b>WeChat</b><br>
<img src="img/qun-12.png" width="500" alt="WeChat"><br>
<em>二维码7天内(4月25日前)有效,过期请加微信</em>
<img src="img/qun13.png" width="500" alt="WeChat"><br>
<em>二维码7天内(5月30日前)有效,过期请加微信</em>
</td>
<!-- <td align="center">
<b>ETC</b><br>

BIN
img/qun13.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

View File

@ -3,7 +3,7 @@
AppImage instructions:
mkdir -p ~/Downloads/Cursor
cd ~/Downloads/Cursor
cd Cursor && ./Cursor-0.49.5-x86_64.AppImage --appimage-extract
cd Cursor && ./Cursor-0.50.5-x86_64.AppImage --appimage-extract
mkdir -p ~/.local
rsync -rt ~/Downloads/Cursor/squashfs-root/usr/ ~/.local
# ^ copy the subfolders not usr itself, so the resulting executable should be ~/.local/bin/cursor

View File

@ -202,7 +202,7 @@ install_cursor_appimage() {
if ! find_appimage; then
log_warn "在 '$APPIMAGE_SEARCH_DIR' 目录下未找到 '$APPIMAGE_PATTERN' 文件。"
# --- 新增:添加文件名格式提醒 ---
log_info "请确保 AppImage 文件名格式类似: Cursor-版本号-架构.AppImage (例如: Cursor-0.49.6-aarch64.AppImage 或 Cursor-x.y.z-x86_64.AppImage)"
log_info "请确保 AppImage 文件名格式类似: Cursor-版本号-架构.AppImage (例如: Cursor-0.50.6-aarch64.AppImage 或 Cursor-x.y.z-x86_64.AppImage)"
# --- 结束:添加文件名格式提醒 ---
# 等待用户放置文件
read -p $"请将 Cursor AppImage 文件放入 '$APPIMAGE_SEARCH_DIR' 目录,然后按 Enter 键继续..."
@ -1084,6 +1084,67 @@ select_menu_option() {
done
}
# 新增 Cursor 初始化清理函数
cursor_initialize_cleanup() {
log_info "正在执行 Cursor 初始化清理..."
# CURSOR_CONFIG_DIR 在脚本全局已定义: $HOME/.config/Cursor
local USER_CONFIG_BASE_PATH="$CURSOR_CONFIG_DIR/User"
log_debug "用户配置基础路径: $USER_CONFIG_BASE_PATH"
local files_to_delete=(
"$USER_CONFIG_BASE_PATH/globalStorage/state.vscdb"
"$USER_CONFIG_BASE_PATH/globalStorage/state.vscdb.backup"
)
local folder_to_clean_contents="$USER_CONFIG_BASE_PATH/History"
local folder_to_delete_completely="$USER_CONFIG_BASE_PATH/workspaceStorage"
# 删除指定文件
for file_path in "${files_to_delete[@]}"; do
log_debug "检查文件: $file_path"
if [ -f "$file_path" ]; then
if rm -f "$file_path"; then
log_info "已删除文件: $file_path"
else
log_error "删除文件 $file_path 失败"
fi
else
log_warn "文件不存在,跳过删除: $file_path"
fi
done
# 清空指定文件夹内容
log_debug "检查待清空文件夹: $folder_to_clean_contents"
if [ -d "$folder_to_clean_contents" ]; then
if find "$folder_to_clean_contents" -mindepth 1 -delete; then
log_info "已清空文件夹内容: $folder_to_clean_contents"
else
if [ -z "$(ls -A "$folder_to_clean_contents")" ]; then
log_info "文件夹 $folder_to_clean_contents 现在为空。"
else
log_error "清空文件夹 $folder_to_clean_contents 内容失败 (部分或全部)。请检查权限或手动删除。"
fi
fi
else
log_warn "文件夹不存在,跳过清空: $folder_to_clean_contents"
fi
# 删除指定文件夹及其内容
log_debug "检查待删除文件夹: $folder_to_delete_completely"
if [ -d "$folder_to_delete_completely" ]; then
if rm -rf "$folder_to_delete_completely"; then
log_info "已删除文件夹: $folder_to_delete_completely"
else
log_error "删除文件夹 $folder_to_delete_completely 失败"
fi
else
log_warn "文件夹不存在,跳过删除: $folder_to_delete_completely"
fi
log_info "Cursor 初始化清理完成。"
}
# 主函数
main() {
# 初始化日志文件
@ -1109,9 +1170,13 @@ main() {
╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝
"
echo -e "${BLUE}=====================================================${NC}"
echo -e "${GREEN} Cursor Linux 启动与修改工具 ${NC}"
echo -e "${GREEN} Cursor Linux 启动与修改工具(免费) ${NC}"
echo -e "${YELLOW} 关注公众号【煎饼果子卷AI】 ${NC}"
echo -e "${YELLOW} 一起交流更多Cursor技巧和AI知识(脚本免费、关注公众号加群有更多技巧和大佬) ${NC}"
echo -e "${BLUE}=====================================================${NC}"
echo
echo -e "${GREEN} [小小广告] 出售CursorPro教育号一年质保三个月有需要找我(86)WeChatJavaRookie666 ${NC}"
echo
echo -e "${YELLOW}[提示]${NC} 本工具旨在修改 Cursor 以解决可能的启动问题或设备限制。"
echo -e "${YELLOW}[提示]${NC} 它将优先修改 JS 文件并可选择重置设备ID和禁用自动更新。"
echo -e "${YELLOW}[提示]${NC} 如果未找到 Cursor将尝试从 '$APPIMAGE_SEARCH_DIR' 目录安装。"
@ -1156,6 +1221,9 @@ main() {
exit 1
fi
# 执行 Cursor 初始化清理
# cursor_initialize_cleanup
# 备份并处理配置文件 (机器码重置选项)
if ! generate_new_config; then
log_error "处理配置文件时出错,脚本中止。"

183
scripts/run/cursor_mac_id_modifier.sh Executable file → Normal file
View File

@ -50,6 +50,66 @@ log_cmd_output() {
echo "" >> "$LOG_FILE"
}
# 新增 Cursor 初始化清理函数
cursor_initialize_cleanup() {
log_info "正在执行 Cursor 初始化清理..."
local BASE_PATH="$HOME/Library/Application Support/Cursor/User"
log_debug "基础路径: $BASE_PATH"
local files_to_delete=(
"$BASE_PATH/globalStorage/state.vscdb"
"$BASE_PATH/globalStorage/state.vscdb.backup"
)
local folder_to_clean_contents="$BASE_PATH/History"
local folder_to_delete_completely="$BASE_PATH/workspaceStorage"
# 删除指定文件
for file_path in "${files_to_delete[@]}"; do
log_debug "检查文件: $file_path"
if [ -f "$file_path" ]; then
if rm -f "$file_path"; then
log_info "已删除文件: $file_path"
else
log_error "删除文件 $file_path 失败"
fi
else
log_warn "文件不存在,跳过删除: $file_path"
fi
done
# 清空指定文件夹内容
log_debug "检查待清空文件夹: $folder_to_clean_contents"
if [ -d "$folder_to_clean_contents" ]; then
if find "$folder_to_clean_contents" -mindepth 1 -delete; then
log_info "已清空文件夹内容: $folder_to_clean_contents"
else
if [ -z "$(ls -A "$folder_to_clean_contents")" ]; then
log_info "文件夹 $folder_to_clean_contents 现在为空。" # 通常find成功即代表操作完成
else
log_error "清空文件夹 $folder_to_clean_contents 内容失败 (部分或全部)。请检查权限或手动删除。"
fi
fi
else
log_warn "文件夹不存在,跳过清空: $folder_to_clean_contents"
fi
# 删除指定文件夹及其内容
log_debug "检查待删除文件夹: $folder_to_delete_completely"
if [ -d "$folder_to_delete_completely" ]; then
if rm -rf "$folder_to_delete_completely"; then
log_info "已删除文件夹: $folder_to_delete_completely"
else
log_error "删除文件夹 $folder_to_delete_completely 失败"
fi
else
log_warn "文件夹不存在,跳过删除: $folder_to_delete_completely"
fi
log_info "Cursor 初始化清理完成。"
}
# 获取当前用户
get_current_user() {
if [ "$EUID" -eq 0 ]; then
@ -72,7 +132,48 @@ BACKUP_DIR="$HOME/Library/Application Support/Cursor/User/globalStorage/backups"
# 定义 Cursor 应用程序路径
CURSOR_APP_PATH="/Applications/Cursor.app"
# 新增:辅助函数,用于修改单个接口的 MAC 地址
# 新增判断接口类型是否为Wi-Fi
is_wifi_interface() {
local interface_name="$1"
# 通过networksetup判断接口类型
networksetup -listallhardwareports | \
awk -v dev="$interface_name" 'BEGIN{found=0} /Hardware Port: Wi-Fi/{found=1} /Device:/{if(found && $2==dev){exit 0}else{found=0}}' && return 0 || return 1
}
# 新增:生成本地管理+单播MAC地址IEEE标准
generate_local_unicast_mac() {
# 第一字节LAA+单播低两位10其余随机
local first_byte=$(( (RANDOM & 0xFC) | 0x02 ))
local mac=$(printf '%02x:%02x:%02x:%02x:%02x:%02x' \
$first_byte $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)))
echo "$mac"
}
# 新增自动检测并调用macchanger或spoof-mac
try_third_party_mac_tool() {
local interface_name="$1"
local random_mac="$2"
local success=false
# 优先macchanger
if command -v macchanger >/dev/null 2>&1; then
log_info "尝试使用macchanger修改接口 '$interface_name' 的MAC地址..."
sudo macchanger -m "$random_mac" "$interface_name" >>"$LOG_FILE" 2>&1 && success=true
fi
# 若macchanger不可用尝试spoof-mac
if ! $success && command -v spoof-mac >/dev/null 2>&1; then
log_info "尝试使用spoof-mac修改接口 '$interface_name' 的MAC地址..."
sudo spoof-mac set $random_mac $interface_name >>"$LOG_FILE" 2>&1 && success=true
fi
if $success; then
log_info "第三方工具修改MAC地址成功。"
return 0
else
log_warn "未检测到可用的macchanger或spoof-mac或第三方工具修改失败。"
return 1
fi
}
# 修改_change_mac_for_one_interface失败时自动调用第三方工具并集成恢复/重试菜单
_change_mac_for_one_interface() {
local interface_name="$1"
if [ -z "$interface_name" ]; then
@ -82,7 +183,6 @@ _change_mac_for_one_interface() {
log_info "开始处理接口: $interface_name"
# 获取当前 MAC 地址用于日志记录
local current_mac=$(ifconfig "$interface_name" | awk '/ether/{print $2}')
if [ -z "$current_mac" ]; then
log_warn "无法获取接口 '$interface_name' 的当前 MAC 地址,可能已禁用或不存在。"
@ -90,25 +190,27 @@ _change_mac_for_one_interface() {
log_info "接口 '$interface_name' 当前 MAC 地址: $current_mac"
fi
# 生成随机 MAC 地址 (保留本地管理位,避免冲突)
local random_mac=$(printf '02:%02x:%02x:%02x:%02x:%02x' $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)))
log_info "为接口 '$interface_name' 生成新的随机 MAC 地址: $random_mac"
local random_mac=$(generate_local_unicast_mac)
log_info "为接口 '$interface_name' 生成新的本地管理+单播 MAC 地址: $random_mac"
local mac_change_success=false
# 临时禁用接口
if is_wifi_interface "$interface_name"; then
log_info "检测到接口 '$interface_name' 为Wi-Fi先断开SSID..."
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -z 2>>"$LOG_FILE"
sleep 3
fi
log_info "临时禁用接口 '$interface_name' 以修改 MAC 地址 (网络会短暂中断)..."
if ! sudo ifconfig "$interface_name" down; then
log_error "禁用接口 '$interface_name' 失败,跳过该接口的 MAC 地址修改。"
echo -e "${RED}禁用网络接口 '$interface_name' 失败。请检查日志: $LOG_FILE ${NC}"
# 即使禁用失败,仍然尝试启用接口 (如果之前是启用的)
sudo ifconfig "$interface_name" up 2>/dev/null || true
return 1
else
log_info "接口 '$interface_name' 已禁用,等待1秒..."
sleep 1 # 添加短暂延迟确保接口状态改变
log_info "接口 '$interface_name' 已禁用,等待3秒..."
sleep 3
# 尝试修改 MAC 地址
log_info "尝试为接口 '$interface_name' 设置 MAC 地址: $random_mac"
sudo ifconfig $interface_name up
if sudo ifconfig "$interface_name" ether "$random_mac"; then
@ -124,37 +226,66 @@ _change_mac_for_one_interface() {
log_error "尝试修改接口 '$interface_name' 的 MAC 地址失败。"
log_error "请检查接口名称是否正确,或尝试手动执行: sudo ifconfig $interface_name down && sudo ifconfig $interface_name ether <新MAC地址> && sudo ifconfig $interface_name up"
echo -e "${RED}修改接口 '$interface_name' 的 MAC 地址失败。请检查日志: $LOG_FILE ${NC}"
echo -e "${YELLOW}如多次失败可尝试安装并使用macchanger或spoof-mac工具。${NC}"
echo -e "${YELLOW}macchanger安装: brew install macchangerspoof-mac安装: brew install spoof-mac${NC}"
# 自动尝试第三方工具
if try_third_party_mac_tool "$interface_name" "$random_mac"; then
mac_change_success=true
fi
fi
fi
# 重新启用接口
log_info "重新启用接口 '$interface_name'..."
if ! sudo ifconfig "$interface_name" up; then
log_error "重新启用接口 '$interface_name' 失败。"
echo -e "${RED}重新启用网络接口 '$interface_name' 失败。请检查日志: $LOG_FILE ${NC}"
# 即使启用失败,也报告 MAC 修改尝试的结果
if $mac_change_success; then
echo -e "${YELLOW}接口 '$interface_name' 的 MAC 地址已修改,但重新启用接口失败。请手动检查网络连接。${NC}"
fi
return 1
else
log_info "接口 '$interface_name' 已重新启用。等待网络恢复..."
sleep 2 # 等待网络恢复
# Optional: Add a network connectivity check here
sleep 2
if $mac_change_success; then
local final_mac_check=$(ifconfig "$interface_name" | awk '/ether/{print $2}')
log_info "最终验证接口 '$interface_name' 新 MAC 地址 (接口启用状态下): $final_mac_check"
if [ "$final_mac_check" == "$random_mac" ]; then
echo -e "${GREEN}已成功临时修改接口 '$interface_name' 的 MAC 地址。重启后恢复。${NC}"
return 0 # 成功
echo -e "${GREEN}已成功临时修改接口 '$interface_name' 的 MAC 地址(本地管理+单播)。重启后恢复。${NC}"
return 0
else
log_warn "最终验证失败,接口 '$interface_name' 的 MAC 地址可能未生效或已被重置。"
echo -e "${YELLOW}接口 '$interface_name' MAC 地址修改尝试完成,但最终验证失败。请检查接口状态和日志。${NC}"
return 1 # 验证失败
# 失败时提供恢复/重试选项
select_menu_option "MAC地址修改失败您可以" "重试本接口|跳过本接口|退出脚本" 0
local choice=$?
if [ "$choice" = "0" ]; then
log_info "用户选择重试本接口。"
_change_mac_for_one_interface "$interface_name"
elif [ "$choice" = "1" ]; then
log_info "用户选择跳过本接口。"
return 1
else
log_info "用户选择退出脚本。"
exit 1
fi
return 1
fi
else
echo -e "${RED}接口 '$interface_name' MAC 地址修改尝试失败。请检查日志: $LOG_FILE ${NC}"
return 1 # 修改失败
# 失败时提供恢复/重试选项
select_menu_option "MAC地址修改失败您可以" "重试本接口|跳过本接口|退出脚本" 0
local choice=$?
if [ "$choice" = "0" ]; then
log_info "用户选择重试本接口。"
_change_mac_for_one_interface "$interface_name"
elif [ "$choice" = "1" ]; then
log_info "用户选择跳过本接口。"
return 1
else
log_info "用户选择退出脚本。"
exit 1
fi
return 1
fi
fi
}
@ -202,9 +333,9 @@ check_and_kill_cursor() {
else
kill $CURSOR_PIDS 2>/dev/null || true
fi
sleep 1
sleep 3
# 同样使用更精确的匹配来检查进程是否还在运行
if ! ps aux | grep -i "/Applications/Cursor.app" | grep -v grep > /dev/null; then
log_info "Cursor 进程已成功关闭"
@ -836,8 +967,8 @@ global.macMachineId = '${mac_machine_id}';
log_warn "签名失败,错误日志:"
cat /tmp/codesign.log
fi
sleep 1
sleep 3
done
if ! $sign_success; then
@ -1160,6 +1291,8 @@ main() {
echo -e "${YELLOW} 一起交流更多Cursor技巧和AI知识(脚本免费、关注公众号加群有更多技巧和大佬) ${NC}"
echo -e "${BLUE}================================${NC}"
echo
echo -e "${YELLOW} [小小广告] 出售CursorPro教育号一年质保三个月有需要找我(86)WeChatJavaRookie666 ${NC}"
echo
echo -e "${YELLOW}[重要提示]${NC} 本工具默认会修改系统 MAC 地址 (临时) 并修改 JS 文件以重置设备标识。"
echo -e "${YELLOW}[重要提示]${NC} 本工具免费如果对您有帮助请关注公众号【煎饼果子卷AI】"
echo
@ -1167,6 +1300,10 @@ main() {
# 执行主要功能
check_permissions
check_and_kill_cursor
# 执行 Cursor 初始化清理
# cursor_initialize_cleanup
backup_config
# 新增:默认执行系统 MAC 地址修改

View File

@ -13,6 +13,70 @@ $NC = "`e[0m"
$STORAGE_FILE = "$env:APPDATA\Cursor\User\globalStorage\storage.json"
$BACKUP_DIR = "$env:APPDATA\Cursor\User\globalStorage\backups"
# 新增 Cursor 初始化函数
function Cursor-初始化 {
Write-Host "$GREEN[信息]$NC 正在执行 Cursor 初始化清理..."
$BASE_PATH = "$env:APPDATA\Cursor\User"
$filesToDelete = @(
(Join-Path -Path $BASE_PATH -ChildPath "globalStorage\\state.vscdb"),
(Join-Path -Path $BASE_PATH -ChildPath "globalStorage\\state.vscdb.backup")
)
$folderToCleanContents = Join-Path -Path $BASE_PATH -ChildPath "History"
$folderToDeleteCompletely = Join-Path -Path $BASE_PATH -ChildPath "workspaceStorage"
Write-Host "$BLUE[调试]$NC 基础路径: $BASE_PATH"
# 删除指定文件
foreach ($file in $filesToDelete) {
Write-Host "$BLUE[调试]$NC 检查文件: $file"
if (Test-Path $file) {
try {
Remove-Item -Path $file -Force -ErrorAction Stop
Write-Host "$GREEN[成功]$NC 已删除文件: $file"
}
catch {
Write-Host "$RED[错误]$NC 删除文件 $file 失败: $($_.Exception.Message)"
}
} else {
Write-Host "$YELLOW[警告]$NC 文件不存在,跳过删除: $file"
}
}
# 清空指定文件夹内容
Write-Host "$BLUE[调试]$NC 检查待清空文件夹: $folderToCleanContents"
if (Test-Path $folderToCleanContents) {
try {
# 获取子项进行删除,以避免删除 History 文件夹本身
Get-ChildItem -Path $folderToCleanContents -Recurse | Remove-Item -Recurse -Force -ErrorAction Stop
Write-Host "$GREEN[成功]$NC 已清空文件夹内容: $folderToCleanContents"
}
catch {
Write-Host "$RED[错误]$NC 清空文件夹 $folderToCleanContents 内容失败: $($_.Exception.Message)"
}
} else {
Write-Host "$YELLOW[警告]$NC 文件夹不存在,跳过清空: $folderToCleanContents"
}
# 删除指定文件夹及其内容
Write-Host "$BLUE[调试]$NC 检查待删除文件夹: $folderToDeleteCompletely"
if (Test-Path $folderToDeleteCompletely) {
try {
Remove-Item -Path $folderToDeleteCompletely -Recurse -Force -ErrorAction Stop
Write-Host "$GREEN[成功]$NC 已删除文件夹: $folderToDeleteCompletely"
}
catch {
Write-Host "$RED[错误]$NC 删除文件夹 $folderToDeleteCompletely 失败: $($_.Exception.Message)"
}
} else {
Write-Host "$YELLOW[警告]$NC 文件夹不存在,跳过删除: $folderToDeleteCompletely"
}
Write-Host "$GREEN[信息]$NC Cursor 初始化清理完成。"
Write-Host "" # 添加空行以改善输出格式
}
# 检查管理员权限
function Test-Administrator {
$user = [Security.Principal.WindowsIdentity]::GetCurrent()
@ -44,14 +108,15 @@ Write-Host "$GREEN Cursor 设备ID 修改工具 $NC"
Write-Host "$YELLOW 关注公众号【煎饼果子卷AI】 $NC"
Write-Host "$YELLOW 一起交流更多Cursor技巧和AI知识(脚本免费、关注公众号加群有更多技巧和大佬) $NC"
Write-Host "$YELLOW [重要提示] 本工具免费如果对您有帮助请关注公众号【煎饼果子卷AI】 $NC"
Write-Host "$BLUE================================$NC"
Write-Host ""
Write-Host "$YELLOW [小小广告] 出售CursorPro教育号一年质保三个月有需要找我(86)WeChatJavaRookie666 $NC"
Write-Host "$BLUE================================$NC"
# 获取并显示 Cursor 版本
function Get-CursorVersion {
try {
# 主要检测路径
$packagePath = "$env:LOCALAPPDATA\Programs\cursor\resources\app\package.json"
$packagePath = "$env:LOCALAPPDATA\\Programs\\cursor\\resources\\app\\package.json"
if (Test-Path $packagePath) {
$packageJson = Get-Content $packagePath -Raw | ConvertFrom-Json
@ -62,7 +127,7 @@ function Get-CursorVersion {
}
# 备用路径检测
$altPath = "$env:LOCALAPPDATA\cursor\resources\app\package.json"
$altPath = "$env:LOCALAPPDATA\\cursor\\resources\\app\\package.json"
if (Test-Path $altPath) {
$packageJson = Get-Content $altPath -Raw | ConvertFrom-Json
if ($packageJson.version) {
@ -85,7 +150,7 @@ function Get-CursorVersion {
$cursorVersion = Get-CursorVersion
Write-Host ""
Write-Host "$YELLOW[重要提示]$NC 最新的 0.49.x (以支持)"
Write-Host "$YELLOW[重要提示]$NC 最新的 0.50.x (以支持)"
Write-Host ""
# 检查并关闭 Cursor 进程
@ -139,6 +204,9 @@ function Close-CursorProcess {
Close-CursorProcess "Cursor"
Close-CursorProcess "cursor"
# 执行 Cursor 初始化清理
# Cursor-初始化
# 创建备份目录
if (-not (Test-Path $BACKUP_DIR)) {
New-Item -ItemType Directory -Path $BACKUP_DIR | Out-Null
@ -536,13 +604,4 @@ function Write-ConfigFile {
catch {
throw "写入配置文件失败: $_"
}
}
# 获取并显示版本信息
$cursorVersion = Get-CursorVersion
Write-Host ""
if ($cursorVersion) {
Write-Host "$GREEN[信息]$NC 检测到 Cursor 版本: $cursorVersion,继续执行..."
} else {
Write-Host "$YELLOW[警告]$NC 无法检测版本,将继续执行..."
}