feat: sync Windows .bat scripts with macOS changes
- 运行.bat: add portable mode, gateway run with --allow-unconfigured --force - 启动菜单.bat: 17-item menu, QQ Bot support, model hints, dashboard - 安装到电脑.bat: add safety warnings, remove .env backup, add error checks
This commit is contained in:
@@ -8,28 +8,25 @@ set "OPENCLAW_DIR=%UCLAW_DIR%openclaw"
|
|||||||
set "NODE_DIR=%UCLAW_DIR%runtime\node-win-x64"
|
set "NODE_DIR=%UCLAW_DIR%runtime\node-win-x64"
|
||||||
set "NODE_BIN=%NODE_DIR%\node.exe"
|
set "NODE_BIN=%NODE_DIR%\node.exe"
|
||||||
set "NPM_BIN=%NODE_DIR%\npm.cmd"
|
set "NPM_BIN=%NODE_DIR%\npm.cmd"
|
||||||
set "PNPM_BIN=%NODE_DIR%\pnpm.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%"
|
set "PATH=%NODE_DIR%;%PATH%"
|
||||||
|
|
||||||
goto MENU
|
if not exist "%PORTABLE_STATE_DIR%" mkdir "%PORTABLE_STATE_DIR%"
|
||||||
|
|
||||||
:ENSURE_PNPM
|
|
||||||
if exist "%PNPM_BIN%" goto :eof
|
|
||||||
echo 缺少 pnpm,正在补充安装...
|
|
||||||
call "%NPM_BIN%" install -g pnpm --registry=https://registry.npmmirror.com
|
|
||||||
if not exist "%PNPM_BIN%" (
|
|
||||||
echo [错误] pnpm 安装失败,无法继续构建
|
|
||||||
pause
|
|
||||||
goto MENU
|
goto MENU
|
||||||
)
|
|
||||||
goto :eof
|
|
||||||
|
|
||||||
:MENU
|
:MENU
|
||||||
cls
|
cls
|
||||||
echo.
|
echo.
|
||||||
echo ╔════════════════════════════════════════════════════════╗
|
echo ╔════════════════════════════════════════════════════════╗
|
||||||
echo ║ ║
|
echo ║ ║
|
||||||
echo ║ U-Claw 虾盘 v1.0 ║
|
echo ║ U-Claw 虾盘 v1.1 ║
|
||||||
echo ║ OpenClaw AI 助手 一键安装盘 ║
|
echo ║ OpenClaw AI 助手 一键安装盘 ║
|
||||||
echo ║ ║
|
echo ║ ║
|
||||||
echo ║ 专为中国用户优化 · 免翻墙 · 离线安装 ║
|
echo ║ 专为中国用户优化 · 免翻墙 · 离线安装 ║
|
||||||
@@ -42,26 +39,29 @@ for /f "tokens=*" %%v in ('"%NODE_BIN%" --version 2^>nul') do set "NODE_VER=%%v"
|
|||||||
set "ST_MOD=未安装"
|
set "ST_MOD=未安装"
|
||||||
set "ST_BUILD=未构建"
|
set "ST_BUILD=未构建"
|
||||||
set "ST_INST=未安装"
|
set "ST_INST=未安装"
|
||||||
|
set "ST_PORT=未配置"
|
||||||
if exist "%OPENCLAW_DIR%\node_modules" set "ST_MOD=已安装"
|
if exist "%OPENCLAW_DIR%\node_modules" set "ST_MOD=已安装"
|
||||||
if exist "%OPENCLAW_DIR%\dist" set "ST_BUILD=已构建"
|
if exist "%OPENCLAW_DIR%\dist" set "ST_BUILD=已构建"
|
||||||
if exist "%USERPROFILE%\.uclaw\openclaw" set "ST_INST=已安装"
|
if exist "%USERPROFILE%\.uclaw\openclaw" set "ST_INST=已安装"
|
||||||
|
if exist "%PORTABLE_CONFIG_PATH%" set "ST_PORT=已配置"
|
||||||
|
|
||||||
echo ║ 系统: x64 ^| Node: %NODE_VER% ║
|
echo ║ 系统: x64 ^| Node: %NODE_VER% ║
|
||||||
echo ║ 依赖: %ST_MOD% ^| 构建: %ST_BUILD% ^| 安装: %ST_INST% ║
|
echo ║ 依赖: %ST_MOD% ^| 构建: %ST_BUILD% ║
|
||||||
|
echo ║ 便携配置: %ST_PORT% ^| 电脑安装: %ST_INST% ║
|
||||||
echo ║ ║
|
echo ║ ║
|
||||||
echo ╠════════════════════════════════════════════════════════╣
|
echo ╠════════════════════════════════════════════════════════╣
|
||||||
echo.
|
echo.
|
||||||
echo ---- 安装 -----------------------------------------
|
echo ---- 安装 -----------------------------------------
|
||||||
echo.
|
echo.
|
||||||
echo [1] 一键安装 OpenClaw 到电脑(推荐)
|
echo [1] 安装 OpenClaw 到本机(仅限自己的电脑)
|
||||||
echo [2] 仅安装依赖(npm install)
|
echo [2] 仅安装依赖(npm install)
|
||||||
echo [3] 仅构建项目(npm build)
|
echo [3] 仅构建项目(npm build)
|
||||||
echo [4] 直接从 U 盘运行(免安装)
|
echo [4] 直接从 U 盘运行(配置也保存在 U 盘里)
|
||||||
echo.
|
echo.
|
||||||
echo ---- 中国优化 -------------------------------------
|
echo ---- 中国优化 -------------------------------------
|
||||||
echo.
|
echo.
|
||||||
echo [5] 配置国产 AI 模型(DeepSeek/Kimi/通义千问)
|
echo [5] 首次配置向导(选模型、选平台、填 API Key)
|
||||||
echo [6] 配置中国聊天平台(飞书/钉钉)
|
echo [6] 配置中国聊天平台(QQ Bot/飞书/微信)
|
||||||
echo [7] 设置国内镜像源
|
echo [7] 设置国内镜像源
|
||||||
echo.
|
echo.
|
||||||
echo ---- 维护工具 -------------------------------------
|
echo ---- 维护工具 -------------------------------------
|
||||||
@@ -74,14 +74,17 @@ echo [12] 清理缓存和临时文件
|
|||||||
echo.
|
echo.
|
||||||
echo ---- 其他 -----------------------------------------
|
echo ---- 其他 -----------------------------------------
|
||||||
echo.
|
echo.
|
||||||
echo [13] 查看使用说明
|
echo [13] 浏览预装技能(58个,已离线可用)
|
||||||
echo [14] 系统信息
|
echo [14] 中国用户快速上手指南
|
||||||
|
echo [15] 查看使用说明
|
||||||
|
echo [16] 系统信息
|
||||||
|
echo [17] 打开本地网页控制台
|
||||||
echo [0] 退出
|
echo [0] 退出
|
||||||
echo.
|
echo.
|
||||||
echo ╚════════════════════════════════════════════════════════╝
|
echo ╚════════════════════════════════════════════════════════╝
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
set /p CHOICE=" 请选择 [0-14]: "
|
set /p CHOICE=" 请选择 [0-17]: "
|
||||||
|
|
||||||
if "%CHOICE%"=="1" goto INSTALL
|
if "%CHOICE%"=="1" goto INSTALL
|
||||||
if "%CHOICE%"=="2" goto NPM_INSTALL
|
if "%CHOICE%"=="2" goto NPM_INSTALL
|
||||||
@@ -95,8 +98,11 @@ if "%CHOICE%"=="9" goto BACKUP
|
|||||||
if "%CHOICE%"=="10" goto RESTORE
|
if "%CHOICE%"=="10" goto RESTORE
|
||||||
if "%CHOICE%"=="11" goto RESET
|
if "%CHOICE%"=="11" goto RESET
|
||||||
if "%CHOICE%"=="12" goto CLEANUP
|
if "%CHOICE%"=="12" goto CLEANUP
|
||||||
if "%CHOICE%"=="13" goto README
|
if "%CHOICE%"=="13" goto SKILLS
|
||||||
if "%CHOICE%"=="14" goto SYSINFO
|
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
|
if "%CHOICE%"=="0" goto EXIT
|
||||||
|
|
||||||
echo 无效选择
|
echo 无效选择
|
||||||
@@ -105,7 +111,10 @@ goto MENU
|
|||||||
|
|
||||||
:INSTALL
|
:INSTALL
|
||||||
echo.
|
echo.
|
||||||
echo === 一键安装 OpenClaw 到电脑 ===
|
echo === 安装 OpenClaw 到电脑 ===
|
||||||
|
echo.
|
||||||
|
echo 提醒:如果这是临时电脑、公司电脑或别人的电脑,
|
||||||
|
echo 更推荐返回主菜单选择 [4] 从 U 盘运行。
|
||||||
echo.
|
echo.
|
||||||
call "%UCLAW_DIR%安装到电脑.bat"
|
call "%UCLAW_DIR%安装到电脑.bat"
|
||||||
pause
|
pause
|
||||||
@@ -132,13 +141,7 @@ if not exist "%OPENCLAW_DIR%\node_modules" (
|
|||||||
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
|
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
|
||||||
)
|
)
|
||||||
cd /d "%OPENCLAW_DIR%"
|
cd /d "%OPENCLAW_DIR%"
|
||||||
call :ENSURE_PNPM
|
call "%NODE_BIN%" "%NPM_BIN%" run build
|
||||||
call "%PNPM_BIN%" run build
|
|
||||||
if not exist "%OPENCLAW_DIR%\dist" (
|
|
||||||
echo [错误] 构建失败,请检查上方错误信息
|
|
||||||
pause
|
|
||||||
goto MENU
|
|
||||||
)
|
|
||||||
echo.
|
echo.
|
||||||
echo 构建完成!
|
echo 构建完成!
|
||||||
pause
|
pause
|
||||||
@@ -148,6 +151,9 @@ goto MENU
|
|||||||
echo.
|
echo.
|
||||||
echo === 从 U 盘启动 OpenClaw ===
|
echo === 从 U 盘启动 OpenClaw ===
|
||||||
echo.
|
echo.
|
||||||
|
echo 便携模式:配置、状态、记忆都会写在这只 U 盘里。
|
||||||
|
echo 拔掉 U 盘后当前会话会结束,但换一台电脑再插上还能继续用。
|
||||||
|
echo.
|
||||||
if not exist "%OPENCLAW_DIR%\node_modules" (
|
if not exist "%OPENCLAW_DIR%\node_modules" (
|
||||||
echo 先安装依赖...
|
echo 先安装依赖...
|
||||||
cd /d "%OPENCLAW_DIR%"
|
cd /d "%OPENCLAW_DIR%"
|
||||||
@@ -156,82 +162,50 @@ if not exist "%OPENCLAW_DIR%\node_modules" (
|
|||||||
if not exist "%OPENCLAW_DIR%\dist" (
|
if not exist "%OPENCLAW_DIR%\dist" (
|
||||||
echo 先构建...
|
echo 先构建...
|
||||||
cd /d "%OPENCLAW_DIR%"
|
cd /d "%OPENCLAW_DIR%"
|
||||||
call :ENSURE_PNPM
|
call "%NODE_BIN%" "%NPM_BIN%" run build
|
||||||
call "%PNPM_BIN%" run build
|
|
||||||
if not exist "%OPENCLAW_DIR%\dist" (
|
|
||||||
echo [错误] 构建失败,请检查上方错误信息
|
|
||||||
pause
|
|
||||||
goto MENU
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
cd /d "%OPENCLAW_DIR%"
|
cd /d "%OPENCLAW_DIR%"
|
||||||
REM 首次运行走 onboard,之后直接启动
|
if not exist "%PORTABLE_CONFIG_PATH%" (
|
||||||
if not exist "%USERPROFILE%\.openclaw\openclaw.json" (
|
echo 检测到你还没有完成首次配置。
|
||||||
echo 首次配置...
|
echo 首次配置会保存在 U 盘中,不会写进这台电脑。
|
||||||
"%NODE_BIN%" openclaw.mjs onboard --install-daemon
|
|
||||||
if errorlevel 1 goto MENU
|
|
||||||
)
|
|
||||||
echo.
|
echo.
|
||||||
echo 启动 OpenClaw 服务...
|
set /p DO_ONBOARD=" 现在开始首次配置? (y/n) "
|
||||||
"%NODE_BIN%" openclaw.mjs || call "%NPM_BIN%" start
|
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
|
pause
|
||||||
goto MENU
|
goto MENU
|
||||||
|
|
||||||
:CHINA_MODELS
|
:CHINA_MODELS
|
||||||
echo.
|
echo.
|
||||||
echo === 配置国产 AI 模型 ===
|
echo === 首次配置向导 ===
|
||||||
echo.
|
echo.
|
||||||
echo [a] DeepSeek(深度求索) - 性价比最高,推荐首选
|
echo 国产模型选择提示:
|
||||||
echo [b] Kimi / 月之暗面 - 256K 超长上下文
|
|
||||||
echo [c] 通义千问 Qwen - 阿里云,免费额度大
|
|
||||||
echo [d] 智谱 GLM - 清华系
|
|
||||||
echo [e] MiniMax - 语音和多模态
|
|
||||||
echo [f] 豆包 Doubao(字节跳动) - 火山引擎平台
|
|
||||||
echo.
|
echo.
|
||||||
set /p MODEL=" 请选择 (a-f): "
|
echo DeepSeek → 选 Custom Provider
|
||||||
|
echo Base URL: https://api.deepseek.com/v1
|
||||||
set "ENV_FILE=%OPENCLAW_DIR%\.env"
|
echo 模型名: deepseek-chat
|
||||||
if not exist "%ENV_FILE%" type nul > "%ENV_FILE%"
|
echo Kimi → 选 Moonshot AI
|
||||||
|
echo 通义千问 → 选 Qwen
|
||||||
if /i "%MODEL%"=="a" (
|
echo MiniMax → 选 MiniMax
|
||||||
|
echo 豆包 → 选 Volcano Engine
|
||||||
echo.
|
echo.
|
||||||
echo 配置 DeepSeek
|
echo 按方向键上下滚动列表,回车确认
|
||||||
echo 获取 API Key: https://platform.deepseek.com/
|
|
||||||
set /p APIKEY=" 请输入 DeepSeek API Key: "
|
|
||||||
REM 移除旧配置再写入,避免重复
|
|
||||||
if exist "%ENV_FILE%" (
|
|
||||||
findstr /v /r "^OPENAI_API_KEY= ^OPENAI_BASE_URL=" "%ENV_FILE%" > "%ENV_FILE%.tmp" 2>nul
|
|
||||||
move /y "%ENV_FILE%.tmp" "%ENV_FILE%" >nul 2>nul
|
|
||||||
)
|
|
||||||
echo OPENAI_API_KEY=!APIKEY!>> "%ENV_FILE%"
|
|
||||||
echo OPENAI_BASE_URL=https://api.deepseek.com/v1>> "%ENV_FILE%"
|
|
||||||
echo DeepSeek 已配置!
|
|
||||||
)
|
|
||||||
if /i "%MODEL%"=="b" (
|
|
||||||
echo.
|
echo.
|
||||||
echo 配置 Kimi
|
if not exist "%OPENCLAW_DIR%\node_modules" (
|
||||||
echo 获取 API Key: https://platform.moonshot.cn/
|
cd /d "%OPENCLAW_DIR%"
|
||||||
set /p APIKEY=" 请输入 Moonshot API Key: "
|
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
|
||||||
if exist "%ENV_FILE%" (
|
|
||||||
findstr /v /r "^OPENAI_API_KEY= ^OPENAI_BASE_URL=" "%ENV_FILE%" > "%ENV_FILE%.tmp" 2>nul
|
|
||||||
move /y "%ENV_FILE%.tmp" "%ENV_FILE%" >nul 2>nul
|
|
||||||
)
|
|
||||||
echo OPENAI_API_KEY=!APIKEY!>> "%ENV_FILE%"
|
|
||||||
echo OPENAI_BASE_URL=https://api.moonshot.cn/v1>> "%ENV_FILE%"
|
|
||||||
echo Kimi 已配置!
|
|
||||||
)
|
|
||||||
if /i "%MODEL%"=="c" (
|
|
||||||
echo.
|
|
||||||
echo 配置通义千问
|
|
||||||
echo 获取 API Key: https://dashscope.console.aliyun.com/
|
|
||||||
set /p APIKEY=" 请输入 Qwen API Key: "
|
|
||||||
if exist "%ENV_FILE%" (
|
|
||||||
findstr /v "^ZAI_API_KEY=" "%ENV_FILE%" > "%ENV_FILE%.tmp" 2>nul
|
|
||||||
move /y "%ENV_FILE%.tmp" "%ENV_FILE%" >nul 2>nul
|
|
||||||
)
|
|
||||||
echo ZAI_API_KEY=!APIKEY!>> "%ENV_FILE%"
|
|
||||||
echo 通义千问已配置!
|
|
||||||
)
|
)
|
||||||
|
cd /d "%OPENCLAW_DIR%"
|
||||||
|
"%NODE_BIN%" openclaw.mjs onboard
|
||||||
pause
|
pause
|
||||||
goto MENU
|
goto MENU
|
||||||
|
|
||||||
@@ -239,19 +213,80 @@ goto MENU
|
|||||||
echo.
|
echo.
|
||||||
echo === 配置中国聊天平台 ===
|
echo === 配置中国聊天平台 ===
|
||||||
echo.
|
echo.
|
||||||
echo [a] 飞书 Feishu/Lark - 已内置,功能最全
|
echo [a] 飞书 Feishu/Lark — 已内置,企业首选
|
||||||
echo [b] Telegram - 国内可用
|
echo [b] QQ(腾讯官方)★推荐 — 3条命令,1分钟,免费免翻墙
|
||||||
|
echo [c] 微信(社区插件) — iPad协议
|
||||||
|
echo [d] Telegram — 推荐,简单好用
|
||||||
echo.
|
echo.
|
||||||
echo 企业微信/钉钉/QQ 需要桥接服务,后续版本集成
|
set /p CH=" 请选择 (a-d): "
|
||||||
echo.
|
|
||||||
set /p CH=" 请选择 (a-b): "
|
|
||||||
|
|
||||||
if not exist "%OPENCLAW_DIR%\node_modules" (
|
if not exist "%OPENCLAW_DIR%\node_modules" (
|
||||||
cd /d "%OPENCLAW_DIR%"
|
cd /d "%OPENCLAW_DIR%"
|
||||||
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
|
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
|
||||||
)
|
)
|
||||||
cd /d "%OPENCLAW_DIR%"
|
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
|
"%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
|
pause
|
||||||
goto MENU
|
goto MENU
|
||||||
|
|
||||||
@@ -262,7 +297,6 @@ echo.
|
|||||||
cd /d "%OPENCLAW_DIR%"
|
cd /d "%OPENCLAW_DIR%"
|
||||||
call "%NPM_BIN%" config set registry https://registry.npmmirror.com --location=project
|
call "%NPM_BIN%" config set registry https://registry.npmmirror.com --location=project
|
||||||
echo npm 镜像已设置: registry.npmmirror.com
|
echo npm 镜像已设置: registry.npmmirror.com
|
||||||
echo 后续 npm install 将自动使用淘宝镜像
|
|
||||||
pause
|
pause
|
||||||
goto MENU
|
goto MENU
|
||||||
|
|
||||||
@@ -270,6 +304,8 @@ goto MENU
|
|||||||
echo.
|
echo.
|
||||||
echo === 诊断修复 ===
|
echo === 诊断修复 ===
|
||||||
echo.
|
echo.
|
||||||
|
echo 提示: 选 [17] 可打开网页控制台,在浏览器中查看完整状态
|
||||||
|
echo.
|
||||||
if not exist "%OPENCLAW_DIR%\node_modules" (
|
if not exist "%OPENCLAW_DIR%\node_modules" (
|
||||||
cd /d "%OPENCLAW_DIR%"
|
cd /d "%OPENCLAW_DIR%"
|
||||||
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
|
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
|
||||||
@@ -288,19 +324,14 @@ set "TIMESTAMP=%TIMESTAMP: =0%"
|
|||||||
set "BACKUP_DIR=%UCLAW_DIR%backups\backup_%TIMESTAMP%"
|
set "BACKUP_DIR=%UCLAW_DIR%backups\backup_%TIMESTAMP%"
|
||||||
mkdir "%BACKUP_DIR%" 2>nul
|
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" (
|
if exist "%OPENCLAW_DIR%\.env" (
|
||||||
copy "%OPENCLAW_DIR%\.env" "%BACKUP_DIR%\.env" >nul
|
copy "%OPENCLAW_DIR%\.env" "%BACKUP_DIR%\.env" >nul
|
||||||
echo [OK] .env 配置已备份
|
echo [OK] .env 配置已备份
|
||||||
)
|
)
|
||||||
if exist "%USERPROFILE%\.openclaw\openclaw.json" (
|
|
||||||
mkdir "%BACKUP_DIR%\openclaw-state" 2>nul
|
|
||||||
copy "%USERPROFILE%\.openclaw\openclaw.json" "%BACKUP_DIR%\openclaw-state\" >nul
|
|
||||||
echo [OK] OpenClaw 状态已备份
|
|
||||||
)
|
|
||||||
if exist "%USERPROFILE%\.openclaw\credentials" (
|
|
||||||
xcopy "%USERPROFILE%\.openclaw\credentials" "%BACKUP_DIR%\openclaw-state\credentials\" /e /i /q >nul 2>&1
|
|
||||||
echo [OK] 凭据已备份
|
|
||||||
)
|
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo 备份完成! 位置: %BACKUP_DIR%
|
echo 备份完成! 位置: %BACKUP_DIR%
|
||||||
@@ -329,14 +360,14 @@ if not exist "%RESTORE_PATH%" (
|
|||||||
goto MENU
|
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" (
|
if exist "%RESTORE_PATH%\.env" (
|
||||||
copy "%RESTORE_PATH%\.env" "%OPENCLAW_DIR%\.env" >nul
|
copy "%RESTORE_PATH%\.env" "%OPENCLAW_DIR%\.env" >nul
|
||||||
echo [OK] .env 已恢复
|
echo [OK] .env 已恢复
|
||||||
)
|
)
|
||||||
if exist "%RESTORE_PATH%\openclaw-state" (
|
|
||||||
xcopy "%RESTORE_PATH%\openclaw-state" "%USERPROFILE%\.openclaw\" /e /i /q /y >nul 2>&1
|
|
||||||
echo [OK] OpenClaw 状态已恢复
|
|
||||||
)
|
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo 恢复完成!
|
echo 恢复完成!
|
||||||
@@ -376,8 +407,8 @@ echo === 清理缓存 ===
|
|||||||
echo.
|
echo.
|
||||||
call "%NPM_BIN%" cache clean --force 2>nul
|
call "%NPM_BIN%" cache clean --force 2>nul
|
||||||
echo npm 缓存已清理
|
echo npm 缓存已清理
|
||||||
if exist "%USERPROFILE%\.openclaw\logs" (
|
if exist "%PORTABLE_STATE_DIR%\logs" (
|
||||||
rmdir /s /q "%USERPROFILE%\.openclaw\logs" 2>nul
|
rmdir /s /q "%PORTABLE_STATE_DIR%\logs" 2>nul
|
||||||
echo 日志已清理
|
echo 日志已清理
|
||||||
)
|
)
|
||||||
echo.
|
echo.
|
||||||
@@ -385,6 +416,29 @@ echo 清理完成!
|
|||||||
pause
|
pause
|
||||||
goto MENU
|
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
|
:README
|
||||||
echo.
|
echo.
|
||||||
if exist "%UCLAW_DIR%使用说明.txt" (
|
if exist "%UCLAW_DIR%使用说明.txt" (
|
||||||
@@ -403,19 +457,37 @@ echo 操作系统: %OS%
|
|||||||
echo 处理器: %PROCESSOR_ARCHITECTURE%
|
echo 处理器: %PROCESSOR_ARCHITECTURE%
|
||||||
echo Node.js: %NODE_VER%
|
echo Node.js: %NODE_VER%
|
||||||
echo U-Claw 路径: %UCLAW_DIR%
|
echo U-Claw 路径: %UCLAW_DIR%
|
||||||
|
echo 便携配置: %ST_PORT%
|
||||||
echo.
|
echo.
|
||||||
if exist "%USERPROFILE%\.uclaw" (
|
if exist "%USERPROFILE%\.uclaw" (
|
||||||
echo 已安装路径: %USERPROFILE%\.uclaw
|
echo 已安装路径: %USERPROFILE%\.uclaw
|
||||||
) else (
|
) else (
|
||||||
echo 电脑安装: 未安装
|
echo 电脑安装: 未安装
|
||||||
)
|
)
|
||||||
if exist "%USERPROFILE%\.openclaw" (
|
|
||||||
echo OpenClaw 状态: %USERPROFILE%\.openclaw
|
|
||||||
)
|
|
||||||
echo.
|
echo.
|
||||||
pause
|
pause
|
||||||
goto MENU
|
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
|
:EXIT
|
||||||
echo.
|
echo.
|
||||||
echo 再见!
|
echo 再见!
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
@echo off
|
@echo off
|
||||||
chcp 65001 >nul 2>&1
|
chcp 65001 >nul 2>&1
|
||||||
title U-Claw - 安装 OpenClaw 到电脑
|
title U-Claw 虾盘 - 安装 OpenClaw 到电脑
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo ╔══════════════════════════════════════╗
|
echo ╔══════════════════════════════════════╗
|
||||||
echo ║ U-Claw 安装到电脑 ║
|
echo ║ U-Claw 虾盘 v1.1 ║
|
||||||
echo ║ OpenClaw 永久安装 (Windows) ║
|
echo ║ OpenClaw 永久安装 (Windows) ║
|
||||||
echo ╚══════════════════════════════════════╝
|
echo ╚══════════════════════════════════════╝
|
||||||
echo.
|
echo.
|
||||||
@@ -15,6 +15,10 @@ set "INSTALL_DIR=%USERPROFILE%\.uclaw"
|
|||||||
echo 安装位置: %INSTALL_DIR%
|
echo 安装位置: %INSTALL_DIR%
|
||||||
echo 安装内容: Node.js + OpenClaw + 所有依赖
|
echo 安装内容: Node.js + OpenClaw + 所有依赖
|
||||||
echo.
|
echo.
|
||||||
|
echo [安全提醒] 这会把 OpenClaw 和配置写入当前电脑。
|
||||||
|
echo 如果这是老电脑、共享电脑、公司电脑或临时机器,
|
||||||
|
echo 更推荐回到主菜单选择「直接从 U 盘运行」。
|
||||||
|
echo.
|
||||||
set /p CONFIRM=" 是否继续安装? (y/n) "
|
set /p CONFIRM=" 是否继续安装? (y/n) "
|
||||||
if /i not "%CONFIRM%"=="y" (
|
if /i not "%CONFIRM%"=="y" (
|
||||||
echo 已取消安装
|
echo 已取消安装
|
||||||
@@ -29,18 +33,18 @@ if not exist "%INSTALL_DIR%" mkdir "%INSTALL_DIR%"
|
|||||||
echo [2/4] 安装 Node.js 运行环境...
|
echo [2/4] 安装 Node.js 运行环境...
|
||||||
if exist "%INSTALL_DIR%\node" rmdir /s /q "%INSTALL_DIR%\node"
|
if exist "%INSTALL_DIR%\node" rmdir /s /q "%INSTALL_DIR%\node"
|
||||||
xcopy "%UCLAW_DIR%runtime\node-win-x64" "%INSTALL_DIR%\node\" /e /i /q >nul
|
xcopy "%UCLAW_DIR%runtime\node-win-x64" "%INSTALL_DIR%\node\" /e /i /q >nul
|
||||||
|
if not exist "%INSTALL_DIR%\node\node.exe" (
|
||||||
|
echo [错误] Node.js 安装失败
|
||||||
|
echo 请确认 U 盘复制完成,再重新运行安装。
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
for /f "tokens=*" %%v in ('"%INSTALL_DIR%\node\node.exe" --version') do echo Node.js %%v 已安装
|
for /f "tokens=*" %%v in ('"%INSTALL_DIR%\node\node.exe" --version') do echo Node.js %%v 已安装
|
||||||
|
|
||||||
echo [3/4] 安装 OpenClaw...
|
echo [3/4] 安装 OpenClaw...
|
||||||
if exist "%INSTALL_DIR%\openclaw" (
|
echo 这一步会复制大量文件,首次安装通常需要 3-10 分钟,请耐心等待...
|
||||||
if exist "%INSTALL_DIR%\openclaw\.env" copy "%INSTALL_DIR%\openclaw\.env" "%TEMP%\.uclaw-env-backup" >nul 2>&1
|
if exist "%INSTALL_DIR%\openclaw" rmdir /s /q "%INSTALL_DIR%\openclaw"
|
||||||
rmdir /s /q "%INSTALL_DIR%\openclaw"
|
|
||||||
)
|
|
||||||
xcopy "%UCLAW_DIR%openclaw" "%INSTALL_DIR%\openclaw\" /e /i /q >nul
|
xcopy "%UCLAW_DIR%openclaw" "%INSTALL_DIR%\openclaw\" /e /i /q >nul
|
||||||
if exist "%TEMP%\.uclaw-env-backup" (
|
|
||||||
copy "%TEMP%\.uclaw-env-backup" "%INSTALL_DIR%\openclaw\.env" >nul 2>&1
|
|
||||||
del "%TEMP%\.uclaw-env-backup" >nul 2>&1
|
|
||||||
)
|
|
||||||
|
|
||||||
if exist "%UCLAW_DIR%memory" xcopy "%UCLAW_DIR%memory" "%INSTALL_DIR%\memory\" /e /i /q >nul 2>&1
|
if exist "%UCLAW_DIR%memory" xcopy "%UCLAW_DIR%memory" "%INSTALL_DIR%\memory\" /e /i /q >nul 2>&1
|
||||||
if exist "%UCLAW_DIR%persona" xcopy "%UCLAW_DIR%persona" "%INSTALL_DIR%\persona\" /e /i /q >nul 2>&1
|
if exist "%UCLAW_DIR%persona" xcopy "%UCLAW_DIR%persona" "%INSTALL_DIR%\persona\" /e /i /q >nul 2>&1
|
||||||
@@ -98,10 +102,10 @@ echo 安装位置: %INSTALL_DIR%
|
|||||||
echo.
|
echo.
|
||||||
echo 使用方法:
|
echo 使用方法:
|
||||||
echo 1. 打开新的命令提示符或 PowerShell
|
echo 1. 打开新的命令提示符或 PowerShell
|
||||||
echo 2. 运行: openclaw
|
echo 2. 运行: openclaw onboard --install-daemon
|
||||||
echo 或: uclaw
|
echo 3. 配置完成后运行: openclaw dashboard
|
||||||
echo.
|
echo.
|
||||||
echo 首次使用请运行:
|
echo 小白用户推荐:
|
||||||
echo openclaw onboard --install-daemon
|
echo 先按引导完成首次配置,再打开网页控制台
|
||||||
echo.
|
echo.
|
||||||
pause
|
pause
|
||||||
|
|||||||
@@ -4,32 +4,27 @@ title U-Claw 虾盘 - OpenClaw 一键启动
|
|||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo ╔══════════════════════════════════════╗
|
echo ╔══════════════════════════════════════╗
|
||||||
echo ║ U-Claw 虾盘 v1.0 ║
|
echo ║ U-Claw 虾盘 v1.1 ║
|
||||||
echo ║ OpenClaw 一键启动 (Windows) ║
|
echo ║ OpenClaw 一键启动 (Windows) ║
|
||||||
echo ╚══════════════════════════════════════╝
|
echo ╚══════════════════════════════════════╝
|
||||||
echo.
|
echo.
|
||||||
|
echo 推荐场景:老电脑 / 临时电脑 / 不想改本机环境
|
||||||
|
echo.
|
||||||
|
|
||||||
set "UCLAW_DIR=%~dp0"
|
set "UCLAW_DIR=%~dp0"
|
||||||
set "OPENCLAW_DIR=%UCLAW_DIR%openclaw"
|
set "OPENCLAW_DIR=%UCLAW_DIR%openclaw"
|
||||||
set "NODE_DIR=%UCLAW_DIR%runtime\node-win-x64"
|
set "NODE_DIR=%UCLAW_DIR%runtime\node-win-x64"
|
||||||
set "NODE_BIN=%NODE_DIR%\node.exe"
|
set "NODE_BIN=%NODE_DIR%\node.exe"
|
||||||
set "NPM_BIN=%NODE_DIR%\npm.cmd"
|
set "NPM_BIN=%NODE_DIR%\npm.cmd"
|
||||||
set "PNPM_BIN=%NODE_DIR%\pnpm.cmd"
|
set "PORTABLE_HOME=%UCLAW_DIR%portable-home"
|
||||||
|
set "PORTABLE_STATE_DIR=%PORTABLE_HOME%\.openclaw"
|
||||||
|
set "PORTABLE_CONFIG_PATH=%PORTABLE_STATE_DIR%\openclaw.json"
|
||||||
|
|
||||||
goto MAIN
|
set "OPENCLAW_HOME=%PORTABLE_HOME%"
|
||||||
|
set "OPENCLAW_STATE_DIR=%PORTABLE_STATE_DIR%"
|
||||||
|
set "OPENCLAW_CONFIG_PATH=%PORTABLE_CONFIG_PATH%"
|
||||||
|
|
||||||
:ENSURE_PNPM
|
if not exist "%PORTABLE_STATE_DIR%" mkdir "%PORTABLE_STATE_DIR%"
|
||||||
if exist "%PNPM_BIN%" goto :eof
|
|
||||||
echo 缺少 pnpm,正在补充安装...
|
|
||||||
call "%NPM_BIN%" install -g pnpm --registry=https://registry.npmmirror.com
|
|
||||||
if not exist "%PNPM_BIN%" (
|
|
||||||
echo [错误] pnpm 安装失败,无法继续构建
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
goto :eof
|
|
||||||
|
|
||||||
:MAIN
|
|
||||||
|
|
||||||
if not exist "%NODE_BIN%" (
|
if not exist "%NODE_BIN%" (
|
||||||
echo [错误] 找不到 Node.js 运行环境
|
echo [错误] 找不到 Node.js 运行环境
|
||||||
@@ -59,29 +54,31 @@ if not exist "%OPENCLAW_DIR%\node_modules" (
|
|||||||
if not exist "%OPENCLAW_DIR%\dist" (
|
if not exist "%OPENCLAW_DIR%\dist" (
|
||||||
echo 首次运行,正在构建...
|
echo 首次运行,正在构建...
|
||||||
cd /d "%OPENCLAW_DIR%"
|
cd /d "%OPENCLAW_DIR%"
|
||||||
call :ENSURE_PNPM
|
call "%NODE_BIN%" "%NPM_BIN%" run build
|
||||||
call "%PNPM_BIN%" run build
|
|
||||||
if not exist "%OPENCLAW_DIR%\dist" (
|
|
||||||
echo [错误] 构建失败,请检查上方错误信息
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
echo.
|
echo.
|
||||||
)
|
)
|
||||||
|
|
||||||
echo 正在启动 OpenClaw...
|
echo 正在启动 OpenClaw...
|
||||||
echo.
|
echo.
|
||||||
cd /d "%OPENCLAW_DIR%"
|
cd /d "%OPENCLAW_DIR%"
|
||||||
REM 首次运行走 onboard,之后直接启动
|
|
||||||
if not exist "%USERPROFILE%\.openclaw\openclaw.json" (
|
if not exist "%PORTABLE_CONFIG_PATH%" (
|
||||||
echo 首次配置...
|
echo 检测到你还没有完成首次配置。
|
||||||
"%NODE_BIN%" openclaw.mjs onboard --install-daemon
|
echo 首次配置会直接保存到 U 盘里,换电脑插上后还能继续用。
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
)
|
|
||||||
echo.
|
echo.
|
||||||
echo 启动 OpenClaw 服务...
|
set /p DO_ONBOARD=" 现在开始首次配置? (y/n) "
|
||||||
"%NODE_BIN%" openclaw.mjs || call "%NPM_BIN%" start
|
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
|
||||||
|
)
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo OpenClaw 已退出
|
echo OpenClaw 已退出。拔掉 U 盘后,本次便携运行就会结束。
|
||||||
pause
|
pause
|
||||||
|
|||||||
Reference in New Issue
Block a user