// 构建 register_ossbrowser_launch.bat:模板 + 包装层 base64 块 // 源:public/tools/oss_browser_link/assets/ossbrowser_wrapper_main.js // 产物:public/tools/oss_browser_link/assets/register_ossbrowser_launch.bat(CRLF) const fs = require('fs') const path = require('path') const ROOT = path.join(__dirname, '..', '..') const SRC = path.join(ROOT, 'public', 'tools', 'oss_browser_link', 'assets', 'ossbrowser_wrapper_main.js') const OUT = path.join(ROOT, 'public', 'tools', 'oss_browser_link', 'assets', 'register_ossbrowser_launch.bat') const b = fs.readFileSync(SRC).toString('base64') const echoLines = [] for (let i = 0; i < b.length; i += 96) { echoLines.push(`echo ${b.slice(i, i + 96)}>> "%~dp0_wrapper.b64"`) } const head = `@echo off chcp 65001 >nul setlocal rem ========================================== rem oss-browser 一键注册脚本(协议拉起 + 启动自动定位补丁) rem 用法:把本文件放到与 oss-browser.exe 同一目录,双击运行 rem 作用: rem 1. 在当前用户注册表(HKCU)注册 ossbrowser:// 协议,无需管理员权限 rem 2. 安装 resources\\app 包装层:启动时自动把默认 OSS 路径填进地址栏并定位(含正确 region) rem 3. 生成 trae_default_oss_path.txt(第1行 oss 路径,第2行可选 region) rem 卸载补丁:删除 resources\\app 目录与 trae_default_oss_path.txt 即恢复原版 rem ========================================== set "EXE=%~dp0oss-browser.exe" if not exist "%EXE%" ( echo. echo [错误] 未在当前目录找到 oss-browser.exe echo 请把本脚本放入解压后的 oss-browser-win32-x64 文件夹内(与 oss-browser.exe 同级)再运行。 echo. pause exit /b 1 ) reg add "HKCU\\Software\\Classes\\ossbrowser" /ve /d "URL:ossbrowser Protocol" /f >nul reg add "HKCU\\Software\\Classes\\ossbrowser" /v "URL Protocol" /t REG_SZ /d "" /f >nul reg add "HKCU\\Software\\Classes\\ossbrowser\\shell\\open\\command" /ve /d "\\"%EXE%\\" \\"%%1\\"" /f >nul if errorlevel 1 ( echo [失败] 注册表写入出错。 pause exit /b 1 ) echo [完成] 已注册 ossbrowser:// 协议。 rem ---- 安装启动自动定位包装层 ---- if not exist "%~dp0resources\\app" mkdir "%~dp0resources\\app" echo {"name":"oss-browser","version":"1.18.0","main":"main.js"}> "%~dp0resources\\app\\package.json" if exist "%~dp0_wrapper.b64" del "%~dp0_wrapper.b64" >nul ` const tail = `if exist "%~dp0resources\\app\\main.js" del "%~dp0resources\\app\\main.js" >nul certutil -decode "%~dp0_wrapper.b64" "%~dp0resources\\app\\main.js" >nul if errorlevel 1 ( echo [警告] 包装层解码失败,跳过自动定位补丁(协议拉起仍可用)。 ) else ( echo [完成] 已安装启动自动定位包装层(resources\\app)。 ) del "%~dp0_wrapper.b64" >nul rem ---- 默认路径配置(已存在则不覆盖,尊重手动修改) ---- if not exist "%~dp0trae_default_oss_path.txt" ( echo oss://android-o1-images/trae-files-temp/> "%~dp0trae_default_oss_path.txt" echo oss-cn-shanghai>> "%~dp0trae_default_oss_path.txt" echo [完成] 已生成默认路径配置 trae_default_oss_path.txt ) echo. echo 现在可回到网页点击「打开 oss-browser」。 echo 首次拉起时浏览器会弹确认框,勾选“始终允许”后即为无感打开。 echo 启动后地址栏会自动定位到 trae_default_oss_path.txt 中的路径。 echo 该文件第1行为 oss 路径,第2行可选 region(默认 oss-cn-shanghai)。 echo. pause ` const bat = (head + echoLines.join('\r\n') + '\r\n' + tail).replace(/\r\n/g, '\n').replace(/\n/g, '\r\n') fs.writeFileSync(OUT, bat) console.log('bat written, echo lines =', echoLines.length)