38 lines
1.3 KiB
Batchfile
38 lines
1.3 KiB
Batchfile
|
|
@echo off
|
||
|
|
setlocal
|
||
|
|
chcp 65001 > nul 2>&1
|
||
|
|
title Bookworm Smart Assistant - 全自动安装 v3.0
|
||
|
|
|
||
|
|
:: 极简入口: 只负责确保 Node.js 存在, 核心逻辑全在 setup-all.js 中
|
||
|
|
:: 规则: 不超过 30 行, 不用 if(), 不嵌 PowerShell, 用 %~s 短路径
|
||
|
|
|
||
|
|
net session >nul 2>&1
|
||
|
|
if %errorlevel% equ 0 goto :HAS_ADMIN
|
||
|
|
echo Set s = CreateObject("Shell.Application") > "%TEMP%\bw_uac.vbs"
|
||
|
|
echo s.ShellExecute "cmd.exe", "/k cd /d ""%~sdp0"" ^& ""%~snx0""", "", "runas", 1 >> "%TEMP%\bw_uac.vbs"
|
||
|
|
cscript //nologo "%TEMP%\bw_uac.vbs"
|
||
|
|
del /f /q "%TEMP%\bw_uac.vbs" 2>nul
|
||
|
|
exit /b
|
||
|
|
|
||
|
|
:HAS_ADMIN
|
||
|
|
where node >nul 2>nul
|
||
|
|
if %errorlevel% equ 0 goto :HAS_NODE
|
||
|
|
echo [..] Node.js 未安装, 正在通过 winget 安装...
|
||
|
|
winget install OpenJS.NodeJS.LTS --accept-source-agreements --accept-package-agreements --silent 2>nul
|
||
|
|
for /f "tokens=2*" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path 2^>nul') do set "PATH=%%b"
|
||
|
|
set "PATH=%PATH%;C:\Program Files\nodejs"
|
||
|
|
where node >nul 2>nul
|
||
|
|
if %errorlevel% equ 0 goto :HAS_NODE
|
||
|
|
echo [!!] Node.js 安装失败。请手动下载: https://nodejs.org/
|
||
|
|
goto :END
|
||
|
|
|
||
|
|
:HAS_NODE
|
||
|
|
echo [OK] Node.js 就绪, 启动安装引擎...
|
||
|
|
node "%~dp0setup-all.js" %* || echo [!] 安装过程出错, 请查看上方日志
|
||
|
|
|
||
|
|
:END
|
||
|
|
echo.
|
||
|
|
echo 按任意键关闭...
|
||
|
|
pause > nul
|
||
|
|
endlocal
|