Skip to content

About

RScriptoBox — 轻量级 Windows 脚本工作台。基于 Rust 与 Tauri 2,支持 CMD/BAT、PowerShell、Python 的副本管理、交互执行与环境安装。

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

RScriptoBox

RScriptoBox

Windows 脚本工作台 · 管理、配置与交互执行

Rust Tauri Vue Platform Project License

by Rurikacy · English

界面预览 · 快速开始 · 源码构建 · 使用支持


📖 简介

RScriptoBox 使用 Rust、Tauri 2 和 Vue 3 构建,将 CMD / BAT、PowerShell、Python 脚本放在同一个工作台中管理。导入时创建脚本副本,绑定明确的解释器,配置参数与工作目录,在内置交互终端中执行并查看历史。

应用采用灰黑底色、紫色点缀的紧凑界面与便携目录分发。运行发布版无需安装 Rust 或 Node.js;脚本解释器与 WebView2 是独立运行前提。当前界面语言为简体中文,文档提供中英文版本。

🖼️ 界面预览

脚本库、分类筛选与运行配置入口

任务与日志环境中心
查看执行任务与交互终端日志 检测并管理 CMD、PowerShell 与 Python 解释器
运行历史偏好设置
按结果和时间筛选执行记录,查看状态、耗时与退出码 调整运行偏好、管理日志、备份数据与清理脚本副本

✨ 功能特性

功能 说明
脚本库 添加或拖入 .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 数据包、数据库备份、脚本副本清理与恢复。

📥 快速开始

  1. 从 Releases 下载 RScriptoBox-0.4.0-windows-x64-portable.zip;源码仓库不包含发行 ZIP。
  2. 解压到可写的本地目录,保留 RScriptoBox.exe 旁的 portable.flag,双击程序启动。
  3. 在 环境中心 检测已有解释器,缺失时查看安装计划,或手动登记实际解释器路径。
  4. 在 脚本库 添加脚本,打开 配置 绑定运行环境,再点击 运行脚本。
  5. 可先导入 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 不随本便携包分发。

About

RScriptoBox — 轻量级 Windows 脚本工作台。基于 Rust 与 Tauri 2,支持 CMD/BAT、PowerShell、Python 的副本管理、交互执行与环境安装。

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages