# wintoolpro **Repository Path**: liuyuyan6100/wintoolpro ## Basic Information - **Project Name**: wintoolpro - **Description**: wintool进化版本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-26 - **Last Updated**: 2026-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WintoolPro > Windows Pro 工具箱 — PowerShell 模块化工具集,支持开机自启动、SSH 隧道、远程备份同步。 ## 目录结构 ``` wintoolpro/ ├── toolbox.ps1 # 主入口(双击 launch-toolbox.cmd 或 PowerShell 直接运行) ├── launch-toolbox.cmd # 双击启动快捷方式 ├── lib/ # 基础设施层(无 UI 逻辑,无业务依赖) │ ├── AppData.ps1 # 应用数据目录 + JSON 配置读写 + 日志 │ ├── UI.ps1 # 终端 UI 原语(Show-Header / Read-InputWithDefault 等) │ ├── Menu.ps1 # 数据驱动菜单引擎 │ ├── Process.ps1 # 进程 / 端口工具函数 │ └── Startup.ps1 # 开机自启动(任务计划 Logon 触发器) ├── features/ # 功能模块(每个文件 = 一个功能领域) │ ├── system.ps1 # 系统信息 / 网络配置 / 监听端口 │ ├── network.ps1 # 网络诊断 │ ├── maintenance.ps1 # 系统维护(清理临时文件 / DNS / Explorer / C 盘) │ ├── tools.ps1 # 常用 Windows 工具快捷启动 │ ├── archives.ps1 # 文件归档(tar.gz / gz 解压) │ ├── ssh-tunnel.ps1 # SSH SOCKS5 动态隧道 + 代理浏览器 │ ├── remote-sync.ps1 # VPS → 本地 scp 备份同步(手动 + 定时) │ └── startup-manager.ps1 # 开机自启动管理 UI ├── workers/ # 后台进程(被 features/ 或任务计划调用,无交互 UI) │ ├── ssh-tunnel-worker.ps1 # SSH 隧道守护进程(自动重连) │ └── remote-sync-worker.ps1 # 备份同步定时任务脚本 ├── scripts/ │ ├── setup.ps1 # 一次性初始化(注册开机自启动,需管理员) │ └── clean-c-disk.ps1 # C 盘清理脚本 └── tests/ ├── Run-Tests.ps1 # 测试入口 └── cases/ # 测试用例(自动发现所有 Invoke-Test* 函数) ├── 01-lib-appdata.ps1 ├── 02-lib-process.ps1 ├── 03-feature-system.ps1 ├── 04-feature-ssh-tunnel.ps1 ├── 05-feature-remote-sync.ps1 ├── 06-lib-startup.ps1 └── 07-module-load.ps1 ``` ## 快速开始 ### 1. 初次安装(管理员权限) ```powershell # 以管理员身份运行 PowerShell,然后: powershell -ExecutionPolicy Bypass -File "D:\windows_tool\wintoolpro\scripts\setup.ps1" ``` 这会完成: - 设置 PowerShell 执行策略为 RemoteSigned(CurrentUser) - 注册开机自启动任务(登录时自动弹出工具箱) ### 2. 手动启动 双击 `launch-toolbox.cmd`,或: ```powershell powershell -ExecutionPolicy Bypass -File "D:\windows_tool\wintoolpro\toolbox.ps1" ``` ### 3. 运行测试 ```powershell powershell -ExecutionPolicy Bypass -File "D:\windows_tool\wintoolpro\tests\Run-Tests.ps1" ``` ## 数据存储 所有运行时配置和日志均存储在: ``` %LOCALAPPDATA%\WintoolPro\ ├── ssh-tunnel-config.json # SSH 隧道配置 ├── ssh-tunnel-state.json # SSH 隧道运行状态 ├── remote-sync-config.json # 远程备份同步配置 └── logs\ └── wintoolpro-YYYYMM.log ``` > ⚠️ 这些文件包含服务器地址和路径信息,已加入 .gitignore,**不会提交到 Git 仓库**。 > 💡 远程备份同步内置默认仓库 `chat_web` / `dual_vps_monitor`(git 协议,远端 `/home/git/git-server/*.git`)。在「7. 远程备份同步 → 管理同步仓库 → 添加内置默认仓库」一键加入,应用时会询问本地保存根目录(仓库存到 `<根目录>\<仓库名>`);首次配置 SSH 连接时也会提示是否带上。 ## 添加新功能 1. 在 `features/` 新建 `my-feature.ps1`,实现 `Open-MyFeatureMenu` 函数 2. 在 `toolbox.ps1` 的 `$featureModules` 数组追加 `"features\my-feature.ps1"` 3. 在 `toolbox.ps1` 的 `$mainMenu.Items` 追加一项: ```powershell @{ Key = "9"; Label = "我的新功能"; Action = { Invoke-Submenu { Open-MyFeatureMenu } } } ``` 4. (可选)在 `tests/cases/` 新建测试用例文件 ## 分支管理策略 > ⚠️ **重要规则:禁止在 main 或 develop 上直接开发或修复 bug。** > > 每次开发都必须从对应分支创建功能分支(feat/xxx)或修复分支(fix/xxx),开发完成后再合回。直接在这两个分支上 commit 会导致历史混乱,且无法追溯关联的功能或修复。 ### 分支说明 | 分支 | 用途 | 保护策略 | |------|------|---------| | `main` | 用户下载的稳定版本,有版本 tag | 只接受 merge,不直接 commit | | `develop` | 开发中的最新代码 | 可推送,建议通过 feature 分支合并 | | `feat/xxx` | 单个功能开发 | 用完即删 | | `hotfix/xxx` | 紧急修复,基于 main | 完成后合入 main 和 develop | ### 日常开发流程 ```bash # 1. 从 develop 创建功能分支 git checkout develop git pull git checkout -b feat/新功能名 # 2. 开发并提交(推荐约定式提交) git add . git commit -m "feat: 新增 XX 功能" git commit -m "fix: 修复 XX 问题" git push -u origin feat/新功能名 # 3. 功能完成后合入 develop git checkout develop git merge feat/新功能名 git push origin develop # 4. 删除功能分支(本地和远程) git branch -d feat/新功能名 git push origin --delete feat/新功能名 ``` ### 发布流程(打 Tag) 只在**正式发版**时操作,不频繁合 main: ```bash # 1. 确保 develop 已同步最新代码并测试通过 git checkout develop git pull # 2. 合入 main git checkout main git merge develop # 3. 打版本 Tag(推荐语义化版本) git tag -a v1.2.0 -m "feat: 添加系统信息增强功能" # 4. 推送 main 和 tag 到远端 git push origin main git push origin --tags ``` **版本号规则**: - `v1.0.0` — 首次正式发布 - `v1.1.0` — 新增功能(向下兼容) - `v1.1.1` — 修复 bug(不新增功能) - `v2.0.0` — 破坏性变更 ## 约定式提交规范 提交信息格式:`type: 简短描述` | type | 用途 | |------|------| | `feat` | 新功能 | | `fix` | 修复 bug | | `docs` | 文档更新 | | `style` | 代码格式(不影响功能) | | `refactor` | 重构(不是修复也不是新功能) | | `test` | 测试相关 | | `chore` | 构建/工具/依赖更新 | **示例**: ``` feat: 添加 CPU/GPU/内存/磁盘信息显示 fix: 修复 BOM 编码导致中文乱码 chore: 更新依赖版本 ``` ## GitFlow 完整流程图 ``` 开发者本地 ────────────────────────────────────────────────────────────── main ●───────────────────────────────────────● │ │ │ 合入 develop │ 打 Tag │◄──────────────────────────────── │ 发版 │ ▼ develop ●──────●──────●──────●──────●──────●────●──────● │ \ \ \ │ │ feat/A feat/B hotfix/X │ │ ●●● ●●● ●● │ │ / | \ / | \ / | \ │ │ merge 合入 merge 合入 merge 合入 │ │ \ / \ / \ / │ │ ▼ ▼ ▼ │ │ ●●● ●●● ●● │ │ ▲ │◄────────────────────────────────────── │ 合入 develop ────────────────────────────────────────────────────────────── 实际操作步骤: 1. 开始新功能 git checkout develop git checkout -b feat/新功能 2. 开发 + 提交(多次) git add . git commit -m "feat: xxx" git push -u origin feat/新功能 3. 功能完成,合入 develop git checkout develop git merge --no-ff feat/新功能 git push origin develop git branch -d feat/新功能 4. 发版(很少操作) git checkout main git merge develop git tag -a v1.x.x -m "版本说明" git push origin main --tags 5. 紧急修复 git checkout main git checkout -b hotfix/问题描述 # 修复 ... git checkout main && git merge hotfix/问题描述 git checkout develop && git merge hotfix/问题描述 git branch -d hotfix/问题描述 ```