Files
u-claw/uclaw-scripts/Windows-全部功能.bat
2026-03-10 03:27:40 +08:00

496 lines
14 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@echo off
chcp 65001 >nul 2>&1
title U-Claw 虾盘 - 启动菜单
setlocal enabledelayedexpansion
set "UCLAW_DIR=%~dp0"
set "OPENCLAW_DIR=%UCLAW_DIR%openclaw"
set "NODE_DIR=%UCLAW_DIR%runtime\node-win-x64"
set "NODE_BIN=%NODE_DIR%\node.exe"
set "NPM_BIN=%NODE_DIR%\npm.cmd"
set "PORTABLE_HOME=%UCLAW_DIR%portable-home"
set "PORTABLE_STATE_DIR=%PORTABLE_HOME%\.openclaw"
set "PORTABLE_CONFIG_PATH=%PORTABLE_STATE_DIR%\openclaw.json"
set "OPENCLAW_HOME=%PORTABLE_HOME%"
set "OPENCLAW_STATE_DIR=%PORTABLE_STATE_DIR%"
set "OPENCLAW_CONFIG_PATH=%PORTABLE_CONFIG_PATH%"
set "PATH=%NODE_DIR%;%PATH%"
if not exist "%PORTABLE_STATE_DIR%" mkdir "%PORTABLE_STATE_DIR%"
goto MENU
:MENU
cls
echo.
echo ╔════════════════════════════════════════════════════════╗
echo ║ ║
echo ║ U-Claw 虾盘 v1.1 ║
echo ║ OpenClaw AI 助手 一键安装盘 ║
echo ║ ║
echo ║ 专为中国用户优化 · 免翻墙 · 离线安装 ║
echo ║ ║
echo ╠════════════════════════════════════════════════════════╣
echo ║ ║
:: 状态检测
for /f "tokens=*" %%v in ('"%NODE_BIN%" --version 2^>nul') do set "NODE_VER=%%v"
set "ST_MOD=未安装"
set "ST_BUILD=未构建"
set "ST_INST=未安装"
set "ST_PORT=未配置"
if exist "%OPENCLAW_DIR%\node_modules" set "ST_MOD=已安装"
if exist "%OPENCLAW_DIR%\dist" set "ST_BUILD=已构建"
if exist "%USERPROFILE%\.uclaw\openclaw" set "ST_INST=已安装"
if exist "%PORTABLE_CONFIG_PATH%" set "ST_PORT=已配置"
echo ║ 系统: x64 ^| Node: %NODE_VER%
echo ║ 依赖: %ST_MOD% ^| 构建: %ST_BUILD%
echo ║ 便携配置: %ST_PORT% ^| 电脑安装: %ST_INST%
echo ║ ║
echo ╠════════════════════════════════════════════════════════╣
echo.
echo ---- 安装 -----------------------------------------
echo.
echo [1] 安装 OpenClaw 到本机(仅限自己的电脑)
echo [2] 仅安装依赖npm install
echo [3] 仅构建项目npm build
echo [4] 直接从 U 盘运行(配置也保存在 U 盘里)
echo.
echo ---- 中国优化 -------------------------------------
echo.
echo [5] 首次配置向导(选模型、选平台、填 API Key
echo [6] 配置中国聊天平台QQ Bot/飞书/微信)
echo [7] 设置国内镜像源
echo.
echo ---- 维护工具 -------------------------------------
echo.
echo [8] 诊断修复openclaw doctor
echo [9] 备份当前状态
echo [10] 恢复备份
echo [11] 重置 OpenClaw恢复出厂
echo [12] 清理缓存和临时文件
echo.
echo ---- 其他 -----------------------------------------
echo.
echo [13] 浏览预装技能58个已离线可用
echo [14] 中国用户快速上手指南
echo [15] 查看使用说明
echo [16] 系统信息
echo [17] 打开本地网页控制台
echo [0] 退出
echo.
echo ╚════════════════════════════════════════════════════════╝
echo.
set /p CHOICE=" 请选择 [0-17]: "
if "%CHOICE%"=="1" goto INSTALL
if "%CHOICE%"=="2" goto NPM_INSTALL
if "%CHOICE%"=="3" goto BUILD
if "%CHOICE%"=="4" goto RUN
if "%CHOICE%"=="5" goto CHINA_MODELS
if "%CHOICE%"=="6" goto CHINA_CHANNELS
if "%CHOICE%"=="7" goto MIRROR
if "%CHOICE%"=="8" goto DOCTOR
if "%CHOICE%"=="9" goto BACKUP
if "%CHOICE%"=="10" goto RESTORE
if "%CHOICE%"=="11" goto RESET
if "%CHOICE%"=="12" goto CLEANUP
if "%CHOICE%"=="13" goto SKILLS
if "%CHOICE%"=="14" goto CHINA_GUIDE
if "%CHOICE%"=="15" goto README
if "%CHOICE%"=="16" goto SYSINFO
if "%CHOICE%"=="17" goto DASHBOARD
if "%CHOICE%"=="0" goto EXIT
echo 无效选择
pause
goto MENU
:INSTALL
echo.
echo === 安装 OpenClaw 到电脑 ===
echo.
echo 提醒:如果这是临时电脑、公司电脑或别人的电脑,
echo 更推荐返回主菜单选择 [4] 从 U 盘运行。
echo.
call "%UCLAW_DIR%安装到电脑.bat"
pause
goto MENU
:NPM_INSTALL
echo.
echo === 安装 npm 依赖 ===
echo.
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
echo.
echo 依赖安装完成!
pause
goto MENU
:BUILD
echo.
echo === 构建 OpenClaw ===
echo.
if not exist "%OPENCLAW_DIR%\node_modules" (
echo 先安装依赖...
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
)
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" run build
echo.
echo 构建完成!
pause
goto MENU
:RUN
echo.
echo === 从 U 盘启动 OpenClaw ===
echo.
echo 便携模式:配置、状态、记忆都会写在这只 U 盘里。
echo 拔掉 U 盘后当前会话会结束,但换一台电脑再插上还能继续用。
echo.
if not exist "%OPENCLAW_DIR%\node_modules" (
echo 先安装依赖...
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
)
if not exist "%OPENCLAW_DIR%\dist" (
echo 先构建...
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" run build
)
cd /d "%OPENCLAW_DIR%"
if not exist "%PORTABLE_CONFIG_PATH%" (
echo 检测到你还没有完成首次配置。
echo 首次配置会保存在 U 盘中,不会写进这台电脑。
echo.
set /p DO_ONBOARD=" 现在开始首次配置? (y/n) "
if /i "!DO_ONBOARD!"=="y" (
"%NODE_BIN%" openclaw.mjs onboard
echo.
echo 首次配置完成,已保存到 U 盘。
)
) else (
echo 正在启动网关服务...
echo 此窗口不要关闭,关闭后服务会停止。
echo.
"%NODE_BIN%" openclaw.mjs gateway run --allow-unconfigured --force
)
pause
goto MENU
:CHINA_MODELS
echo.
echo === 首次配置向导 ===
echo.
echo 国产模型选择提示:
echo.
echo DeepSeek → 选 Custom Provider
echo Base URL: https://api.deepseek.com/v1
echo 模型名: deepseek-chat
echo Kimi → 选 Moonshot AI
echo 通义千问 → 选 Qwen
echo MiniMax → 选 MiniMax
echo 豆包 → 选 Volcano Engine
echo.
echo 按方向键上下滚动列表,回车确认
echo.
if not exist "%OPENCLAW_DIR%\node_modules" (
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
)
cd /d "%OPENCLAW_DIR%"
"%NODE_BIN%" openclaw.mjs onboard
pause
goto MENU
:CHINA_CHANNELS
echo.
echo === 配置中国聊天平台 ===
echo.
echo [a] 飞书 Feishu/Lark — 已内置,企业首选
echo [b] QQ腾讯官方★推荐 — 3条命令1分钟免费免翻墙
echo [c] 微信(社区插件) — iPad协议
echo [d] Telegram — 推荐,简单好用
echo.
set /p CH=" 请选择 (a-d): "
if not exist "%OPENCLAW_DIR%\node_modules" (
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
)
cd /d "%OPENCLAW_DIR%"
if /i "%CH%"=="a" (
echo.
echo 配置飞书 Feishu
echo 1. 访问 https://open.feishu.cn/app 创建应用
echo 2. 获取 App ID 和 App Secret
echo 3. 配置事件订阅和权限
echo.
"%NODE_BIN%" openclaw.mjs onboard
)
if /i "%CH%"=="b" (
echo.
echo 配置 QQ腾讯官方接入
echo.
echo 这是国内最简单的 AI 助手接入方式!
echo 全程 1 分钟,完全免费,无需翻墙。
echo.
echo 1. 扫码注册: http://q.qq.com/qqbot/openclaw/login.html
echo 2. 点击「创建机器人」,获取 AppID 和 AppSecret
echo.
if exist "%OPENCLAW_DIR%\dist" (
set /p DO_QQ=" 是否现在安装 QQ 插件? (y/n) "
if /i "!DO_QQ!"=="y" (
echo.
echo 正在安装 QQ 插件...
"%NODE_BIN%" openclaw.mjs plugins install @sliverp/qqbot@latest
echo.
set /p QQ_APP_ID=" AppID: "
echo.
set /p QQ_APP_SECRET=" AppSecret: "
echo.
if not "!QQ_APP_ID!"=="" if not "!QQ_APP_SECRET!"=="" (
echo 正在绑定 QQ 机器人...
"%NODE_BIN%" openclaw.mjs channels add --channel qqbot --token "!QQ_APP_ID!:!QQ_APP_SECRET!"
echo.
set /p QQ_ALLOW=" 请输入你自己的 QQ 号(设置白名单,留空跳过): "
if not "!QQ_ALLOW!"=="" (
"%NODE_BIN%" openclaw.mjs config set channels.qqbot.allowFrom "\"!QQ_ALLOW!\""
echo 白名单已设置
)
echo.
echo QQ 机器人配置完成!
echo 请重启网关后生效(主菜单选 [4] 或 [17]
)
)
)
)
if /i "%CH%"=="c" (
echo.
echo 配置微信(社区插件)
echo 安装微信插件:
"%NODE_BIN%" openclaw.mjs plugins install @icesword760/openclaw-wechat
)
if /i "%CH%"=="d" (
echo.
echo 配置 Telegram
echo 1. 在 Telegram 中找 @BotFather
echo 2. 发送 /newbot 创建机器人
echo 3. 获取 Bot Token
echo.
"%NODE_BIN%" openclaw.mjs onboard
)
pause
goto MENU
:MIRROR
echo.
echo === 设置国内镜像源 ===
echo.
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" config set registry https://registry.npmmirror.com --location=project
echo npm 镜像已设置: registry.npmmirror.com
pause
goto MENU
:DOCTOR
echo.
echo === 诊断修复 ===
echo.
echo 提示: 选 [17] 可打开网页控制台,在浏览器中查看完整状态
echo.
if not exist "%OPENCLAW_DIR%\node_modules" (
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
)
cd /d "%OPENCLAW_DIR%"
"%NODE_BIN%" openclaw.mjs doctor --repair
pause
goto MENU
:BACKUP
echo.
echo === 备份当前状态 ===
echo.
set "TIMESTAMP=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%"
set "TIMESTAMP=%TIMESTAMP: =0%"
set "BACKUP_DIR=%UCLAW_DIR%backups\backup_%TIMESTAMP%"
mkdir "%BACKUP_DIR%" 2>nul
if exist "%PORTABLE_STATE_DIR%" (
xcopy "%PORTABLE_STATE_DIR%" "%BACKUP_DIR%\portable-state\" /e /i /q >nul 2>&1
echo [OK] 便携模式状态已备份
)
if exist "%OPENCLAW_DIR%\.env" (
copy "%OPENCLAW_DIR%\.env" "%BACKUP_DIR%\.env" >nul
echo [OK] .env 配置已备份
)
echo.
echo 备份完成! 位置: %BACKUP_DIR%
pause
goto MENU
:RESTORE
echo.
echo === 恢复备份 ===
echo.
set "BACKUP_BASE=%UCLAW_DIR%backups"
if not exist "%BACKUP_BASE%" (
echo 没有找到任何备份
pause
goto MENU
)
echo 可用备份:
dir /b "%BACKUP_BASE%" 2>nul
echo.
set /p RESTORE_NAME=" 输入备份名称: "
set "RESTORE_PATH=%BACKUP_BASE%\%RESTORE_NAME%"
if not exist "%RESTORE_PATH%" (
echo 备份不存在
pause
goto MENU
)
if exist "%RESTORE_PATH%\portable-state" (
xcopy "%RESTORE_PATH%\portable-state" "%PORTABLE_STATE_DIR%\" /e /i /q /y >nul 2>&1
echo [OK] 便携模式状态已恢复
)
if exist "%RESTORE_PATH%\.env" (
copy "%RESTORE_PATH%\.env" "%OPENCLAW_DIR%\.env" >nul
echo [OK] .env 已恢复
)
echo.
echo 恢复完成!
pause
goto MENU
:RESET
echo.
echo === 重置 OpenClaw ===
echo.
echo [1] 仅重置配置(保留凭据)
echo [2] 重置配置+凭据+会话
echo [3] 完全重置(恢复出厂)
echo [0] 取消
echo.
set /p RESET_CHOICE=" 选择重置级别: "
if "%RESET_CHOICE%"=="0" goto MENU
if not exist "%OPENCLAW_DIR%\node_modules" (
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
)
cd /d "%OPENCLAW_DIR%"
if "%RESET_CHOICE%"=="1" "%NODE_BIN%" openclaw.mjs reset --scope config
if "%RESET_CHOICE%"=="2" "%NODE_BIN%" openclaw.mjs reset --scope config+creds+sessions
if "%RESET_CHOICE%"=="3" (
set /p CONFIRM=" 确定完全重置? 输入 YES 确认: "
if "!CONFIRM!"=="YES" "%NODE_BIN%" openclaw.mjs reset --scope full
)
pause
goto MENU
:CLEANUP
echo.
echo === 清理缓存 ===
echo.
call "%NPM_BIN%" cache clean --force 2>nul
echo npm 缓存已清理
if exist "%PORTABLE_STATE_DIR%\logs" (
rmdir /s /q "%PORTABLE_STATE_DIR%\logs" 2>nul
echo 日志已清理
)
echo.
echo 清理完成!
pause
goto MENU
:SKILLS
echo.
echo === 预装技能 ===
echo.
if not exist "%OPENCLAW_DIR%\node_modules" (
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
)
cd /d "%OPENCLAW_DIR%"
"%NODE_BIN%" openclaw.mjs plugins list
pause
goto MENU
:CHINA_GUIDE
echo.
if exist "%UCLAW_DIR%中国用户指南.txt" (
type "%UCLAW_DIR%中国用户指南.txt"
) else (
echo 指南文件不存在
)
pause
goto MENU
:README
echo.
if exist "%UCLAW_DIR%使用说明.txt" (
type "%UCLAW_DIR%使用说明.txt"
) else (
echo 使用说明文件不存在
)
pause
goto MENU
:SYSINFO
echo.
echo === 系统信息 ===
echo.
echo 操作系统: %OS%
echo 处理器: %PROCESSOR_ARCHITECTURE%
echo Node.js: %NODE_VER%
echo U-Claw 路径: %UCLAW_DIR%
echo 便携配置: %ST_PORT%
echo.
if exist "%USERPROFILE%\.uclaw" (
echo 已安装路径: %USERPROFILE%\.uclaw
) else (
echo 电脑安装: 未安装
)
echo.
pause
goto MENU
:DASHBOARD
echo.
echo === 启动网关 + 打开网页控制台 ===
echo.
if not exist "%PORTABLE_CONFIG_PATH%" (
echo 你还没有完成便携配置。请先选 [4] 从 U 盘运行。
pause
goto MENU
)
if not exist "%OPENCLAW_DIR%\node_modules" (
cd /d "%OPENCLAW_DIR%"
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
)
cd /d "%OPENCLAW_DIR%"
echo 此窗口不要关闭,关闭后服务会停止。
echo.
"%NODE_BIN%" openclaw.mjs gateway run --allow-unconfigured --force
pause
goto MENU
:EXIT
echo.
echo 再见!
echo.
exit /b 0