NX 路径自动探测 (换机不用改脚本) - 新增 tools/find-nxbin.ps1, 三级探测: 环境变量 ONEBOT_NXBIN > 项目内 nxbin.txt > C:\Program Files\Siemens\NX*\NXBIN - 多版本共存取版本号最大者 (实测 NX2506+NX2512 共存时正确选 2512), 故 2506 → 2512 换机无需改任何脚本 - _start_all.bat 接入探测, 并优雅降级: 找不到 NX 只警告并跳过 worker, 网页/GenServer 照常启动 (不再因 NX 缺失导致整个启动失败) 修复批处理行尾 (本次改动引入的回归) - 用工具写 .bat 时默认写成 LF, 而 cmd.exe 必须用 CRLF: 裸 LF 会把 `if not defined X (` 拆成乱码, 报 `'ned' 不是内部或外部命令` / `此时不应有 else` - _start_all.bat / _start_web.bat 因此被破坏, 已恢复 CRLF - 新增 tools/fix-lineend.ps1 一键检查/修正 (幂等, 仿 fix-bom.ps1); 该检查额外抓出 2 个同样有问题的文件并一并修正: 一键导出CRA问卷.bat / tools/build-genserver.bat (内容未变, 仅行尾) - 新增 .gitattributes 声明 *.bat/*.cmd eol=crlf, 防止 checkout 后再被转成 LF 验证 - find-nxbin.ps1 实测探测到 C:\Program Files\Siemens\NX2506\NXBIN - 多版本排序逻辑实测选中 2512 - 批处理行尾修复后实际运行通过 - 两个新 ps1 语法自检通过 Co-Authored-By: Claude Code <noreply@anthropic.com>
62 lines
2.1 KiB
Batchfile
62 lines
2.1 KiB
Batchfile
@echo off
|
|
setlocal
|
|
cd /d "%~dp0"
|
|
|
|
echo.
|
|
echo ============================================================
|
|
echo ONEBOT one-click start: web + GenServer + NX worker
|
|
echo ============================================================
|
|
echo.
|
|
|
|
echo [1/6] stop old processes ...
|
|
taskkill /F /IM GenServer.exe >nul 2>nul
|
|
taskkill /F /IM run_journal.exe >nul 2>nul
|
|
ping -n 2 127.0.0.1 >nul
|
|
|
|
echo [2/6] build GenServer ...
|
|
powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0tools\build-genserver.ps1"
|
|
if not %errorlevel%==0 (
|
|
echo.
|
|
echo [FAIL] GenServer build failed. Check error above.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo [3/6] start GenServer ...
|
|
start "GenServer" /min "%~dp0bin\GenServer.exe" "%~dp0genserver-local\genserver-config.json"
|
|
ping -n 3 127.0.0.1 >nul
|
|
|
|
echo [4/6] start NX worker ...
|
|
rem NX 路径自动探测 (环境变量 ONEBOT_NXBIN > 项目内 nxbin.txt > C:\Program Files\Siemens\NX*)
|
|
rem 多版本共存时取版本号最大者, 便于 2506/2512 换机不用改脚本
|
|
set "NXBIN="
|
|
for /f "usebackq delims=" %%i in (`powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0tools\find-nxbin.ps1" -Quiet`) do set "NXBIN=%%i"
|
|
if not defined NXBIN (
|
|
echo [WARN] 未找到 NX ^(run_journal.exe^), 跳过 NX worker ^(网页/GenServer 不受影响^)
|
|
echo 可手动指定: set ONEBOT_NXBIN=D:\path\to\NXBIN 或写一行到 nxbin.txt
|
|
) else (
|
|
echo NX: %NXBIN%
|
|
start "NXworker" /min "%NXBIN%\run_journal.exe" "%~dp0sample-data\tools\worker_journal.vb"
|
|
)
|
|
ping -n 3 127.0.0.1 >nul
|
|
|
|
echo [5/6] start web server (port 8080, 后台无窗口) ...
|
|
powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0tools\serve-web-bg.ps1"
|
|
ping -n 2 127.0.0.1 >nul
|
|
|
|
echo [6/6] health check ...
|
|
curl.exe -s http://localhost:8899/health
|
|
echo.
|
|
curl.exe -s -o nul -w "web 8080 : %%{http_code}" http://localhost:8080/index.html
|
|
echo.
|
|
|
|
echo.
|
|
echo ============================================================
|
|
echo done. Open browser: http://localhost:8080
|
|
echo admin: http://localhost:8899/admin (password: onebot888)
|
|
echo keep the GenServer / NXworker / OnebotWeb windows open
|
|
echo ============================================================
|
|
echo.
|
|
pause
|
|
endlocal
|