返回博客

PowerShell / Codex / Tooling

Codex 桌面状态恢复脚本的工程化处理

记录一个 PowerShell 恢复脚本的参数、备份、dry-run 和测试设计。

桌面应用状态恢复脚本看似只是移动文件,但真正需要处理的是执行时机、备份、可回滚信息和误操作防护。这个脚本围绕 Codex 桌面状态文件恢复场景设计,重点是让每次执行都有清晰记录。

项目概览

结构上,PowerShell 脚本包含参数区、路径规范化、脱离终端运行、进程等待、备份目录、复制与移动操作记录、summary.json 写入和 DryRun 预演模式。

用途是在桌面应用退出后恢复状态文件,并为每次执行留下摘要。应用场景包括状态文件迁移、异常恢复前预演、批处理前确认目标目录。

执行过程

脚本先检查目标进程是否仍在运行。进程退出后,脚本创建带时间戳的备份目录,把当前状态文件复制进去,再移动新的数据库文件到指定位置。每一步都会记录到 JSON 摘要中。

dry-run 参数用于预演。开启后脚本只输出计划动作和检查结果,文件系统保持原状。这个模式适合在修改前确认目标目录、备份目录和输入文件。

测试设计

测试使用临时目录模拟 Windows 用户目录和应用数据目录,覆盖进程检测、备份命名、dry-run、文件移动和摘要写入。脚本逻辑被拆成可测试函数,命令入口只负责参数解析。

实现原理是把文件操作拆成可记录步骤。预演模式只生成计划动作,真实执行模式按顺序等待进程退出、备份旧状态、移动新状态、写入摘要。Python 单测使用临时状态目录验证预演与真实执行。