真实用户报障驱动, 4 个 P0 闭环:
B1: wt.exe ';' 切 tab 误报 → -EncodedCommand Base64-UTF-16LE
B2: -d '%~dp0' 尾 \ 配 " 转义引号 → -d '%CD%' 无尾反斜杠 (cd /d 已切入)
B3: 子 pwsh 继承老 PATH 致 claude.exe not found → Base64 首行强制重载
$env:Path = Machine + ';' + User, 找不到 claude 还附带 PATH 诊断
B4: install.ps1 [8/9] Skills>50 Hooks>10 阈值误报脱敏分发版残缺
→ Skills>=10 Hooks>=3 匹配 bookworm-portable-config.git 实际规模
新增工具 tools/gen-launcher-bats.ps1: 单一明文源 → Base64 → 两 bat 自动同步,
含字符集 + 长度 + round-trip PARSE 三重 health check, 以后改启动逻辑
只需改 $plainScript 一处.
向后兼容: DPAPI 凭证语义 round-trip 不变, 老快捷方式继续可用,
Installer banner v1.5 → v1.6, BWVersion 3.0.5 → 3.0.6.
54 lines
5.2 KiB
Batchfile
54 lines
5.2 KiB
Batchfile
@echo off
|
|
chcp 65001 > nul
|
|
cd /d "%~dp0"
|
|
|
|
:: 中转站在国内,不走代理
|
|
set NO_PROXY=bww.letcareme.com,code.letcareme.com,letcareme.com,localhost,127.0.0.1
|
|
set no_proxy=%NO_PROXY%
|
|
|
|
:: 静默自动更新 (bookworm-boot + .claude 配置, 失败不阻断启动)
|
|
echo [..] 检查更新...
|
|
git pull --rebase >nul 2>nul
|
|
git -C "%USERPROFILE%\.claude" pull --rebase >nul 2>nul
|
|
|
|
set USE_WT=0
|
|
where wt >nul 2>nul && set USE_WT=1
|
|
|
|
set USE_PWSH7=0
|
|
where pwsh >nul 2>nul && set USE_PWSH7=1
|
|
|
|
:: v3.0.6: Base64-UTF-16LE (PATH 重载 + DPAPI 凭证加载 + claude 诊断 + 启动)
|
|
:: 纯 A-Za-z0-9+/= 字符集, 避免 wt.exe 的 ';' 切 tab 误切 (修复 64856bc 症状一)
|
|
:: -d "%CD%" 无尾反斜杠, 避免 -d "%~dp0" 的转义引号 (修复 0c33109 症状二)
|
|
:: 重新生成: pwsh -NoProfile -File tools/gen-launcher-bats.ps1
|
|
set ENC=QQBkAGQALQBUAHkAcABlACAALQBBAHMAcwBlAG0AYgBsAHkATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AUwBlAGMAdQByAGkAdAB5AAoAJABlAG4AdgA6AFAAYQB0AGgAIAA9ACAAWwBFAG4AdgBpAHIAbwBuAG0AZQBuAHQAXQA6ADoARwBlAHQARQBuAHYAaQByAG8AbgBtAGUAbgB0AFYAYQByAGkAYQBiAGwAZQAoACcAUABhAHQAaAAnACwAJwBNAGEAYwBoAGkAbgBlACcAKQAgACsAIAAnADsAJwAgACsAIABbAEUAbgB2AGkAcgBvAG4AbQBlAG4AdABdADoAOgBHAGUAdABFAG4AdgBpAHIAbwBuAG0AZQBuAHQAVgBhAHIAaQBhAGIAbABlACgAJwBQAGEAdABoACcALAAnAFUAcwBlAHIAJwApAAoAJAByACAAPQAgACcASABLAEMAVQA6AFwAUwBvAGYAdAB3AGEAcgBlAFwAQgBvAG8AawB3AG8AcgBtAFwAQwBhAGMAaABlAGQARQBuAHYAJwAKAHQAcgB5ACAAewAKACAAIAAoAEcAZQB0AC0ASQB0AGUAbQBQAHIAbwBwAGUAcgB0AHkAIAAkAHIAIAAtAEUAQQAgAFMAdABvAHAAKQAuAFAAUwBPAGIAagBlAGMAdAAuAFAAcgBvAHAAZQByAHQAaQBlAHMAIAB8ACAAVwBoAGUAcgBlAC0ATwBiAGoAZQBjAHQAIAB7ACAAJABfAC4ATgBhAG0AZQAgAC0AbQBhAHQAYwBoACAAJwBeAFsAQQAtAFoAXwBdACsAJAAnACAAfQAgAHwAIABGAG8AcgBFAGEAYwBoAC0ATwBiAGoAZQBjAHQAIAB7AAoAIAAgACAAIAAkAHYAIAA9ACAAJABfAC4AVgBhAGwAdQBlAAoAIAAgACAAIAB0AHIAeQAgAHsACgAgACAAIAAgACAAIAAkAGIAIAA9ACAAWwBTAGUAYwB1AHIAaQB0AHkALgBDAHIAeQBwAHQAbwBnAHIAYQBwAGgAeQAuAFAAcgBvAHQAZQBjAHQAZQBkAEQAYQB0AGEAXQA6ADoAVQBuAHAAcgBvAHQAZQBjAHQAKABbAEMAbwBuAHYAZQByAHQAXQA6ADoARgByAG8AbQBCAGEAcwBlADYANABTAHQAcgBpAG4AZwAoACQAdgApACwAIAAkAG4AdQBsAGwALAAgAFsAUwBlAGMAdQByAGkAdAB5AC4AQwByAHkAcAB0AG8AZwByAGEAcABoAHkALgBEAGEAdABhAFAAcgBvAHQAZQBjAHQAaQBvAG4AUwBjAG8AcABlAF0AOgA6AEMAdQByAHIAZQBuAHQAVQBzAGUAcgApAAoAIAAgACAAIAAgACAAJAB2ACAAPQAgAFsAVABlAHgAdAAuAEUAbgBjAG8AZABpAG4AZwBdADoAOgBVAFQARgA4AC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAGIAKQAKACAAIAAgACAAfQAgAGMAYQB0AGMAaAAgAHsAfQAKACAAIAAgACAAWwBFAG4AdgBpAHIAbwBuAG0AZQBuAHQAXQA6ADoAUwBlAHQARQBuAHYAaQByAG8AbgBtAGUAbgB0AFYAYQByAGkAYQBiAGwAZQAoACQAXwAuAE4AYQBtAGUALAAgACQAdgAsACAAJwBQAHIAbwBjAGUAcwBzACcAKQAKACAAIAB9AAoAfQAgAGMAYQB0AGMAaAAgAHsAfQAKAGkAZgAgACgALQBuAG8AdAAgACgARwBlAHQALQBDAG8AbQBtAGEAbgBkACAAYwBsAGEAdQBkAGUAIAAtAEUAcgByAG8AcgBBAGMAdABpAG8AbgAgAFMAaQBsAGUAbgB0AGwAeQBDAG8AbgB0AGkAbgB1AGUAKQApACAAewAKACAAIABXAHIAaQB0AGUALQBIAG8AcwB0ACAAJwAnAAoAIAAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAnACAAIABbACEAXQAgAGMAbABhAHUAZABlACAAfVTkTipnfmIwUicAIAAtAEYAbwByAGUAZwByAG8AdQBuAGQAQwBvAGwAbwByACAAUgBlAGQACgAgACAAVwByAGkAdABlAC0ASABvAHMAdAAgACcAJwAKACAAIABXAHIAaQB0AGUALQBIAG8AcwB0ACAAJwAgACAA71P9gJ9T4FY6ACcAIAAtAEYAbwByAGUAZwByAG8AdQBuAGQAQwBvAGwAbwByACAAWQBlAGwAbABvAHcACgAgACAAVwByAGkAdABlAC0ASABvAHMAdAAgACcAIAAgACAAIAAxAC4AIABDAGwAYQB1AGQAZQAgAEMAbwBkAGUAIAAqZ4lbxYggAC0AIADRjToAIABuAHAAbQAgAGkAIAAtAGcAIABAAGEAbgB0AGgAcgBvAHAAaQBjAC0AYQBpAC8AYwBsAGEAdQBkAGUALQBjAG8AZABlACcAIAAtAEYAbwByAGUAZwByAG8AdQBuAGQAQwBvAGwAbwByACAARwByAGEAeQAKACAAIABXAHIAaQB0AGUALQBIAG8AcwB0ACAAJwAgACAAIAAgADIALgAgAG4AcABtACAAaFFAXO+NhF8NTihXIABQAEEAVABIACAALQAgAM2R0Y0gAEIAbwBvAGsAdwBvAHIAbQAtAFMAZQB0AHUAcAAuAGUAeABlACAA7k8NWScAIAAtAEYAbwByAGUAZwByAG8AdQBuAGQAQwBvAGwAbwByACAARwByAGEAeQAKACAAIABXAHIAaQB0AGUALQBIAG8AcwB0ACAAJwAnAAoAIAAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAnACAAIABTX01SIABQAEEAVABIACAAR3K1ayAAKADKi61lKHUpADoAJwAgAC0ARgBvAHIAZQBnAHIAbwB1AG4AZABDAG8AbABvAHIAIABHAHIAYQB5AAoAIAAgACgAJABlAG4AdgA6AFAAYQB0AGgAIAAtAHMAcABsAGkAdAAgACcAOwAnACkAIAB8ACAAVwBoAGUAcgBlAC0ATwBiAGoAZQBjAHQAIAB7ACAAJABfACAALQBtAGEAdABjAGgAIAAnAG4AcABtAHwAbgBvAGQAZQBqAHMAfABwAHcAcwBoAHwARwBpAHQAJwAgAH0AIAB8ACAARgBvAHIARQBhAGMAaAAtAE8AYgBqAGUAYwB0ACAAewAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAiACAAIAAgACAAJABfACIAIAAtAEYAbwByAGUAZwByAG8AdQBuAGQAQwBvAGwAbwByACAARABhAHIAawBHAHIAYQB5ACAAfQAKACAAIABXAHIAaQB0AGUALQBIAG8AcwB0ACAAJwAnAAoAIAAgAHIAZQB0AHUAcgBuAAoAfQAKACYAIABjAGwAYQB1AGQAZQAgAC0ALQBkAGEAbgBnAGUAcgBvAHUAcwBsAHkALQBzAGsAaQBwAC0AcABlAHIAbQBpAHMAcwBpAG8AbgBzAA==
|
|
|
|
:: 优先路径: wt + pwsh7
|
|
if %USE_WT% equ 1 if %USE_PWSH7% equ 1 (
|
|
start "" wt new-tab --title "Bookworm Smart Assistant" -d "%CD%" -- pwsh -NoLogo -NoExit -EncodedCommand %ENC%
|
|
exit
|
|
)
|
|
|
|
:: 路径 2: wt + powershell 5.1
|
|
if %USE_WT% equ 1 if %USE_PWSH7% equ 0 (
|
|
start "" wt new-tab --title "Bookworm Smart Assistant" -d "%CD%" -- powershell -NoLogo -ExecutionPolicy Bypass -NoExit -EncodedCommand %ENC%
|
|
exit
|
|
)
|
|
|
|
:: 路径 3: conhost + pwsh7 (无 wt 就不会有 ; 切 tab 问题, 但仍用 Base64 统一)
|
|
if %USE_PWSH7% equ 1 (
|
|
start "Bookworm Smart Assistant" pwsh -NoLogo -NoExit -EncodedCommand %ENC%
|
|
exit
|
|
)
|
|
|
|
:: 路径 4: 回退 PowerShell 5.1 (最低保障, 交给 install.ps1 -StartOnly 处理)
|
|
title Bookworm Portable
|
|
echo.
|
|
echo [!] PowerShell 7 未安装, 使用 PowerShell 5.1
|
|
echo.
|
|
powershell -ExecutionPolicy Bypass -File install.ps1 -StartOnly -AutoAccept
|
|
if %errorlevel% neq 0 (
|
|
echo.
|
|
echo 启动失败,按任意键退出...
|
|
pause > nul
|
|
) |