Files
u-claw/portable/setup.bat
hfshfg 4dac1ae4ab fix: code review 修复两处 bug 并优化启动提示
- fix(setup.bat): 修复 Node.js 解压路径错误
  xcopy 来源从 %TEMP%\node-v22-win-x64\* 改为
  %TEMP%\node-extract\node-v22-win-x64\*,
  否则解压后 xcopy 找不到文件,Node.js 安装必然失败
- fix(Config.html): 点击「启动 OpenClaw」后 toast 改为
  「配置已保存!请关闭此页面,回到启动窗口使用 U-Claw」,
  避免用户误以为点击后会自动启动而一直等待
  (portable / usb-release / u-claw-app 三个版本同步)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 09:48:44 +08:00

118 lines
3.1 KiB
Batchfile

@echo off
setlocal EnableDelayedExpansion
chcp 65001 >nul 2>&1
title U-Claw Portable Setup
echo.
echo ========================================
echo U-Claw Portable Setup
echo 下载 Node.js + 安装 OpenClaw
echo ========================================
echo.
set "SCRIPT_DIR=%~dp0"
set "APP_DIR=%SCRIPT_DIR%app"
set "CORE_DIR=%APP_DIR%\core"
set "RUNTIME_DIR=%APP_DIR%\runtime"
set "NODE_DIR=%RUNTIME_DIR%\node-win-x64"
set "NODE_BIN=%NODE_DIR%\node.exe"
set "NPM_BIN=%NODE_DIR%\npm.cmd"
set "MIRROR=https://registry.npmmirror.com"
set "NODE_MIRROR=https://npmmirror.com/mirrors/node"
set "NODE_VER=v22.22.1"
REM ---- Step 1: Node.js ----
echo [1/3] 检查 Node.js...
if exist "%NODE_BIN%" (
for /f "tokens=*" %%v in ('"%NODE_BIN%" --version') do echo Node.js (win-x64) 已存在: %%v
goto :install_openclaw
)
echo 从国内镜像下载 Node.js %NODE_VER%...
set "NODE_ZIP=node-%NODE_VER%-win-x64.zip"
set "NODE_URL=%NODE_MIRROR%/%NODE_VER%/%NODE_ZIP%"
echo %NODE_URL%
echo.
curl -# -L "%NODE_URL%" -o "%TEMP%\%NODE_ZIP%"
if !errorlevel! neq 0 (
echo.
echo [ERROR] 下载失败,请检查网络连接
pause
exit /b 1
)
echo 解压中...
mkdir "%NODE_DIR%" 2>nul
powershell -command "Expand-Archive -Path '%TEMP%\%NODE_ZIP%' -DestinationPath '%TEMP%\node-extract' -Force"
xcopy /s /e /q /y "%TEMP%\node-extract\node-%NODE_VER%-win-x64\*" "%NODE_DIR%\" >nul
rmdir /s /q "%TEMP%\node-extract" 2>nul
del "%TEMP%\%NODE_ZIP%" 2>nul
if not exist "%NODE_BIN%" (
echo [ERROR] Node.js 解压失败
pause
exit /b 1
)
for /f "tokens=*" %%v in ('"%NODE_BIN%" --version') do echo Node.js %%v 安装完成
:install_openclaw
echo.
echo [2/3] 安装 OpenClaw...
if exist "%CORE_DIR%\node_modules\openclaw" (
echo OpenClaw 已安装,跳过
goto :install_skills
)
mkdir "%CORE_DIR%" 2>nul
if not exist "%CORE_DIR%\package.json" (
echo {"name":"u-claw-core","version":"1.0.0","private":true,"dependencies":{"openclaw":"latest"}} > "%CORE_DIR%\package.json"
)
cd /d "%CORE_DIR%"
call "%NPM_BIN%" install --registry=%MIRROR%
if !errorlevel! neq 0 (
echo [ERROR] OpenClaw 安装失败
pause
exit /b 1
)
echo OpenClaw 安装完成
:install_skills
echo.
echo [3/3] 安装中国优化技能...
set "SKILLS_CN=%SCRIPT_DIR%skills-cn"
set "SKILLS_TARGET=%CORE_DIR%\node_modules\openclaw\skills"
set "SKILL_COUNT=0"
if exist "%SKILLS_CN%" if exist "%SKILLS_TARGET%" (
for /d %%d in ("%SKILLS_CN%\*") do (
if not exist "%SKILLS_TARGET%\%%~nxd" (
xcopy /s /e /q /y "%%d" "%SKILLS_TARGET%\%%~nxd\" >nul 2>nul
set /a SKILL_COUNT+=1
)
)
echo 中国技能安装完成 ^(+!SKILL_COUNT! 个^)
) else (
echo 跳过技能安装
)
REM ---- Done ----
echo.
echo ========================================
echo 搭建完成!
echo ========================================
echo.
echo 启动方式:
echo 双击 Windows-Start.bat
echo.
echo 目录结构:
echo app\core\ - OpenClaw + 依赖
echo app\runtime\ - Node.js %NODE_VER%
echo data\ - 运行后自动生成
echo.
pause