OneNote导出备份 Skill

OneNote导出备份 是一个用于复用 OneNote 备份导出流程的 Skill。它的重点不是迁移正文,而是把 OneNote 笔记的创建时间整理出来,方便后续构建 Obsidian 笔记回顾系统。

适用场景

  • 在 Mac 上导出 OneNote 本地 .one 备份。
  • 将 OneNote 分区导出为 Markdown。
  • 比较新旧 OneNote 备份,判断创建时间是否发生漂移。
  • 生成按年份、月份组织的 Obsidian 笔记创建时间轴。
  • 以后定期备份 OneNote 时复用同一套流程。

Skill 安装位置

实际 Skill 包位于:

/Users/bairimengyushi/苏苏OB知识库/.agents/skills/OneNote导出备份

其中包括:

SKILL.md
agents/openai.yaml
scripts/export_onenote_mac_backup.py
scripts/compare_onenote_backups.py
scripts/build_onenote_creation_timeline_note.py
scripts/onenote_exporter_frontmatter.patch

默认数据路径

OneNote for Mac 本地备份目录:

/Users/bairimengyushi/Library/Containers/com.microsoft.onenote.mac/Data/Library/Application Support/Microsoft User Data/OneNote/15.0/备份

OneNote 备份归档目录:

/Users/bairimengyushi/Downloads/OneNote备份

笔记回顾系统工作目录:

/Users/bairimengyushi/苏苏OB知识库/30 Project/笔记回顾系统

核心流程

  1. 确认 OneNote for Mac 的本地备份目录存在,并且里面有 .one 快照文件。
  2. 使用支持 .one 解析的 strick-j/onenote-exporter
  3. 应用 onenote_exporter_frontmatter.patch,让导出的 Markdown 带有 createdupdated、来源路径等 front matter。
  4. 运行 export_onenote_mac_backup.py,按分区选择 cutoff 日期前最新的非空快照并导出 Markdown。
  5. 运行 compare_onenote_backups.py,比较旧备份和新备份,检查创建时间是否稳定。
  6. 运行 build_onenote_creation_timeline_note.py,生成完整版和去重阅读版时间轴。
  7. 把导出结果统一放进 /Users/bairimengyushi/Downloads/OneNote备份 归档。

关键判断

这次整理里,旧备份是:

/Users/bairimengyushi/Downloads/OneNote备份/OneNote备份_2023.01.30

新备份是:

/Users/bairimengyushi/Downloads/OneNote备份/OneNote备份导出_截至2026-05-08

旧备份里的最新 created2022-11-08。对于旧备份里已经存在的早期笔记,创建日期以旧备份为锚点;对于之后的笔记,主要使用新备份的创建日期。

比较时发现,新旧备份里看似差 8 小时的 created 不是迁移造成的真实漂移,而是时区表达不同:旧备份带 +08:00,新备份导出的无时区时间按 OneNote 内部 UTC 解释后,再转为 Asia/Shanghai 即可对齐。

常用命令

导出当前 Mac OneNote 备份:

python3 scripts/export_onenote_mac_backup.py \
  --source "/Users/bairimengyushi/Library/Containers/com.microsoft.onenote.mac/Data/Library/Application Support/Microsoft User Data/OneNote/15.0/备份" \
  --output-base "/Users/bairimengyushi/Downloads/OneNote备份/OneNote备份导出_截至YYYY-MM-DD" \
  --cutoff "YYYY-MM-DD"

比较新旧备份:

python3 scripts/compare_onenote_backups.py \
  --old "/Users/bairimengyushi/Downloads/OneNote备份/OneNote备份_2023.01.30" \
  --new "/Users/bairimengyushi/Downloads/OneNote备份/OneNote备份导出_截至YYYY-MM-DD" \
  --out-dir "/Users/bairimengyushi/苏苏OB知识库/30 Project/笔记回顾系统"

生成去重阅读版时间轴:

python3 scripts/build_onenote_creation_timeline_note.py \
  --old "/Users/bairimengyushi/Downloads/OneNote备份/OneNote备份_2023.01.30" \
  --new "/Users/bairimengyushi/Downloads/OneNote备份/OneNote备份导出_截至YYYY-MM-DD" \
  --output "/Users/bairimengyushi/苏苏OB知识库/30 Project/笔记回顾系统/OneNote笔记创建时间轴_去重阅读版.md" \
  --dedupe-title-date

当前相关产物

流程记录:

/Users/bairimengyushi/苏苏OB知识库/30 Project/笔记回顾系统/OneNote导出备份与时间轴整理全流程.md

比较报告:

/Users/bairimengyushi/苏苏OB知识库/30 Project/笔记回顾系统/OneNote新旧备份比较报告.md

时间轴阅读版:

/Users/bairimengyushi/苏苏OB知识库/30 Project/笔记回顾系统/OneNote笔记创建时间轴_去重阅读版.md

使用提示

以后可以直接说:

用 OneNote导出备份 Skill 帮我导出当前 OneNote 备份,并更新比较报告和时间轴。

执行时需要特别注意:不要只看文件系统创建时间;真正的时间轴应该优先使用 OneNote 导出 Markdown front matter 里的 created