本仓库是一个以 Windows 脚本为主的项目,重点维护目标是:在中文 Windows 控制台环境中稳定运行,并避免因为编码/换行/环境差异导致的“误改即坏”。
.github/workflows/ci.yml- GitHub Actions 工作流入口(Windows runner)。
- 两步:1) 调用
tools/validate.ps1做仓库卫生校验(编码、换行、基础cmd.exe可用性探测);2) 用IAS.cmd /silent做最短路径冒烟,断言退出码为2("静默模式缺少动作参数"路径)。
.github/ISSUE_TEMPLATE/bug_report.yml:结构化 Bug 反馈模板,强制带 Windows / IDM / 脚本版本与开始激活.cmd的环境检测输出。help.yml:使用帮助 / 新手求助模板。config.yml:关闭空白 Issue,引导先看 FAQ 与 CHANGELOG。
tools/validate.ps1- CI 校验脚本:强制
.cmd为 GBK(936)且无 BOM(控制台输出需要);.txt不强制编码(记事本打开,使用说明.txt用 UTF-8 BOM);按.gitattributes检查行尾(CRLF/LF);末尾跑一次轻量cmd.exe探测。 - 目标是尽早在 CI 中阻止“编码/换行被编辑器自动改坏”的提交进入主分支。
- CI 校验脚本:强制
IAS.cmd- 主批处理脚本(约 1000 行),包含参数解析、环境探测、激活/冻结/重置流程、注册表备份与日志输出。
- 头部含「代码导航」注释块,按行号区间标注主要代码段位置。
- 维护注意:该文件依赖 CRLF 行尾与 GBK 编码;部分环境/编辑器的自动转换会导致异常。脚本启动时会自检 LF/CRLF。
开始激活.cmd(v1.3.6 起的唯一入口,合并了原四个脚本)- 自动用 PowerShell 提权(单引号包裹路径,兼容含
(x86)等特殊字符的目录)。 - 内置环境自检:管理员权限、PowerShell 语言模式、Null 服务、网络连通性、代码页、WMI/CIM、IDM 安装路径、目录写权限。
- 自检通过或用户确认后,
call IAS.cmd进入菜单(冻结 / 激活 / 重置 / 下载 / 帮助);也接受/frz/act/res/silent /log=...等参数透传。
- 自动用 PowerShell 提权(单引号包裹路径,兼容含
使用说明.txt- 极简上手指南(UTF-8 BOM + CRLF),面向纯小白用户。
README.md/CHANGELOG.md/CONTRIBUTING.md/SECURITY.md/ARCHITECTURE.md- README:用户侧完整说明(功能、使用、FAQ、技术细节)。
- CHANGELOG:唯一的对外版本变更历史。
- CONTRIBUTING:编码/换行约束与提交前自检步骤。
- SECURITY:安全漏洞上报渠道与处理流程。
- ARCHITECTURE:本文件,维护者视角的仓库结构与高风险点。
docs/README.md:公开文档索引,面向新用户、维护者和 AI 搜索引擎说明文档入口与真实性边界。release-notes-v1.3.4.md:v1.3.4 文档专项发布说明。release-notes-v1.3.3.md:v1.3.3 运行时发布说明与回归建议。release-notes-v1.3.1.md:v1.3.1 历史发布说明(保留)。release-notes-v1.3.md:v1.3 历史发布说明(保留)。maintenance-checklist.md:维护/发布检查清单。reports/smoke-win-baseline.md:当前版本 Windows 冒烟基线模板。- 维护约束:
docs/作为公开维护资料随仓库保留;发版时应同步 README / CHANGELOG / llms.txt 中的用户可见信息,避免公开文档互相矛盾。
release/- 发布产物:
IDM-Activation-Script-v<版本>.zip与同名.sha256校验文件。
- 发布产物:
- 编码:
.cmd/.txt必须保持 GBK(代码页 936),否则 Windows 控制台可能乱码,且 CI 会失败。 - 换行:
.cmd/.txt必须保持 CRLF;.md使用 LF(由.gitattributes约束与 CI 校验)。 - 运行环境差异:脚本大量依赖 Windows 系统组件(例如
cmd.exe、PowerShell、WMI 等),macOS/Linux 无法做等价运行验证,因此需要通过 Windows 冒烟记录补齐发布信心。
- push / PR / 手动
workflow_dispatch触发 GitHub Actions(windows-latest)。 - checkout 代码后顺序执行:
tools/validate.ps1:校验编码(GBK/无 BOM)、行尾(按.gitattributes)、cmd.exe基础可用性。失败时以::error file=...::原因注解到对应行,便于在 PR diff 中直接看到。IAS.cmd /silent冒烟:在chcp 936之后调用脚本主体,断言退出码为2(无动作参数 → 静默退出)。这是脚本最短启动路径,能在不依赖管理员/网络/IDM 的前提下捕获语法或参数解析回归。
- 任一步失败即阻止合并(建议在 GitHub 仓库设置中将
Windows validation设为分支保护必过项)。
IAS.cmd退出码:0:当前路径正常完成(菜单退出、激活/冻结/重置成功完成)。2:环境/参数错误(静默模式缺动作参数、未支持的系统版本、缺 PowerShell、缺管理员权限、WMI 失败、CLSID 写入失败、临时目录运行被阻止等)。
开始激活.cmd退出码:自检发现问题时由用户决定是否继续;选择退出返回1,否则进入菜单后原样透传IAS.cmd的返回码。