RScriptoBox 使用 Rust、Tauri 2 和 Vue 3 构建,将 CMD / BAT、PowerShell、Python 脚本放在同一个工作台中管理。导入时创建脚本副本,绑定明确的解释器,配置参数与工作目录,在内置交互终端中执行并查看历史。
应用采用灰黑底色、紫色点缀的紧凑界面与便携目录分发。运行发布版无需安装 Rust 或 Node.js;脚本解释器与 WebView2 是独立运行前提。当前界面语言为简体中文,文档提供中英文版本。
| 任务与日志 | 环境中心 |
|---|---|
![]() |
![]() |
| 运行历史 | 偏好设置 |
![]() |
![]() |
| 功能 | 说明 |
|---|---|
| 脚本库 | 添加或拖入 .cmd、.bat、.ps1、.py;搜索、分类、标签、收藏、卡片与列表。 |
| 工作台副本 | 导入至 data/scripts/<ID>/,运行和编辑使用副本,删除原入口文件后仍可使用。 |
| 执行配置 | 绑定解释器,设置参数、工作目录、环境变量、超时、成功退出码,以及子进程是否随任务托管(默认开启)。 |
| 交互终端 | ConPTY + xterm.js,支持键盘输入、input()、Read-Host、pause 与 Ctrl+C;也可使用系统控制台。 |
| 环境中心 | 检测或手动登记解释器;查看安装计划后准备 Python / PowerShell 7,安装后复检。 |
| Python 依赖 | 创建独立 venv,并明确选择 requirements.txt 安装依赖。 |
| 任务与历史 | 查看实时输出、状态、耗时和退出码,回放或导出日志,停止受控任务树。 |
| 显示与数据 | 默认 16px 正文,可选 14 / 16 / 18 / 20px,支持 DPI 缩放;完整 ZIP 数据包、数据库备份、脚本副本清理与恢复。 |
- 从 Releases 下载
RScriptoBox-0.4.0-windows-x64-portable.zip;源码仓库不包含发行 ZIP。 - 解压到可写的本地目录,保留
RScriptoBox.exe旁的portable.flag,双击程序启动。 - 在 环境中心 检测已有解释器,缺失时查看安装计划,或手动登记实际解释器路径。
- 在 脚本库 添加脚本,打开 配置 绑定运行环境,再点击 运行脚本。
- 可先导入
examples/interactive.py、interactive.ps1或interactive.cmd体验交互输入。
运行环境:Windows 10 22H2 / Windows 11 x64,以及 Microsoft Edge WebView2 Evergreen Runtime。 发布包不捆绑 WebView2、Python 或 PowerShell 7。程序未做数字签名。Windows 10 有本地验证记录,Windows 11 尚待实机验证,详见 验证记录。
CMD 与 Windows PowerShell 5.1 属于系统组件,应用只检测、不替换。环境安装使用 WinGet 或官方 Python Install Manager;安装计划列出来源与可能的系统交互,UAC、网络和企业策略可能影响完成。
每个参数单独填写,空参数会保留。首次运行或脚本内容变更后需要确认信任。点击内置终端即可键入,Ctrl+C 交给脚本处理,强制停止 则结束受控任务树。查看运行中的日志回放时,先点击 返回实时 才能输入。
终端使用 UTF-8,合并 stdout / stderr;日志导出保留终端控制序列,复制按钮提供当前屏幕和滚动缓冲的纯文本。密码是否隐藏取决于脚本采用的输入方法,普通输入回显可能进入日志。
在每个脚本的 执行配置 中可关闭 子进程随任务托管,用于启动资源管理器等常驻程序。关闭后只等待脚本主进程,停止、超时和应用退出均不通过任务 Job 清理子进程;共享内置终端的子进程仍可能随终端关闭而退出,需要持续运行时请使用独立窗口或脱离终端启动。旧配置默认保持开启。
导入仅复制入口脚本,不自动收集同目录资源或依赖。通过 打开所在目录 将关联文件放入副本目录;默认工作目录就是该目录。原文件后续修改不会自动同步,重新导入副本 会创建新版本并保留旧副本。删除时默认仅移除管理记录,可分别勾选删除工作台副本、原始文件及历史日志;设置中可清理残留副本或恢复脚本。
- 同机升级: 结束任务与环境安装,退出所有实例,备份整个旧目录。用新版 EXE 原位置替换,保留
portable.flag与完整data,避免已有 venv 路径变化。也可在新版首次启动前复制整个旧data到新版 EXE 旁,不要合并两个已有数据目录。 - 换设备(推荐 ZIP): v0.2.0 用户先升级到 v0.4.0;在旧设备“偏好设置 → 导出数据包”保存 ZIP 到
data之外,在新设备 v0.4.0 中导入。导入会替换目标数据,不是合并;替换前自动在data上级目录保存完整 ZIP 备份。 - 迁移后检查: 重新检测或登记解释器、按需重新绑定并重建 Python venv。ZIP 导入的原始入口文件放入
data/originals;外部工作目录会清空,绝对路径参数及外部关联资源需自行调整。首次运行需重新确认信任。 - 直接复制: 两端退出后也可复制整个便携目录(含完整
data),但不会自动收集data之外的原始文件或关联资源;解释器、外部路径和 venv 仍需配置。 - 旧版与备份: 旧数据库备份后升级至 schema 3,不要用 v0.2.0 打开升级后的
data。回退须恢复升级前的完整目录备份。数据库备份仅含配置和记录,不能代替完整data或 ZIP 数据包。
完整步骤与本次变更见 v0.4.0 中英文发布说明。数据包可能含脚本与日志敏感内容,请妥善保管。
单独复制 EXE 时,应用默认使用当前用户应用数据目录;--portable 参数也能启用便携模式。常见问题与数据库恢复步骤见 使用支持。
需要 Windows、Rust stable MSVC 工具链、Visual Studio C++ Build Tools / Windows SDK、Node.js 24 与 WebView2。npm 和 Rust 依赖分别由 package-lock.json、src-tauri/Cargo.lock 固定。
npm ci
npm run tauri dev
# 检查与测试
npm test
npm run build
cargo fmt --manifest-path src-tauri/Cargo.toml -- --check
cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets -- -D warnings
cargo test --manifest-path src-tauri/Cargo.toml --lib -- --test-threads=1
cargo test --manifest-path tests/runner/Cargo.toml -- --test-threads=1
# 生成便携程序与 SHA256;运行测试需要对应解释器
pwsh -File scripts/package-portable.ps1产物位于 release/。前端资源嵌入 EXE,运行发布版无需开发服务器。浏览器开发预览使用示例数据,不能执行桌面操作。更新依赖后执行 node scripts/generate-notices.mjs 更新许可清单。
RScriptoBox/
├── src/ # Vue 界面与交互终端
├── src-tauri/ # Rust 后端、Windows 进程与数据管理
├── examples/ # 基础与交互示例
├── tests/runner/ # Windows 原生执行测试
├── scripts/ # 构建、打包与依赖许可生成
├── docs/ # 需求、设计、验证、截图及第三方许可
├── .github/ # CI 与 Issue / PR 模板
├── README.md / README_EN.md
├── LICENSE / THIRD-PARTY-NOTICES.txt
└── CONTRIBUTING.md / SECURITY.md / SUPPORT.md
- 应用是受信任脚本的管理器,不是沙箱;脚本拥有启动程序的权限。请审阅脚本,按需使用管理员权限。
- CMD 路径与参数采用保守字符范围,含括号、百分号、感叹号、引号等特殊字符会被明确拒绝。复杂输入可由脚本读取配置文件。
- 不永久修改 PowerShell 执行策略;可明确选择仅本次进程使用 RemoteSigned 或 Bypass,企业组策略仍优先。
- 安装器可能在应用之外继续运行,取消不能保证回滚;强制停止脚本可能中断数据写入。
- 当前版本的测试结果与未验证范围见 验证记录,不能据此推定所有系统和显示设备已通过验收。
请阅读 贡献指南、行为准则 与 使用支持。可通过 Issues 反馈;安全问题请遵循 安全说明,不要公开敏感脚本或日志。
项目自有源码、文档与应用图标采用 The Unlicense。第三方库、UI 图标与随依赖提供的材料保留各自许可证,不受本项目公共领域声明替代。来源、版本及原始许可文本见 第三方声明 与 依赖许可清单。外部解释器、安装器和 WebView2 不随本便携包分发。




