
五年 OneNote 笔记导出 Markdown 全记录迁移 Obsidian一条命令就够了【免费下载链接】onenote-md-exporterConsoleApp to export OneNote notebooks to Markdown formats项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter小宇的电脑里躺着一部时间胶囊两千多篇 OneNote 笔记从大四的课件一路记到工作第三年的技术复盘。去年他动了把 OneNote 笔记导出 Markdown、迁进 Obsidian 的心思试过复制粘贴、试过官方导出——结果表格散架、图片路径全乱、目录变成一摊平铺的文件折腾两个周末差点放弃。直到有人甩给他一个叫onenote-md-exporter的命令行工具他才明白迁移失败不是笔记的问题是方法的问题。先讲道理为什么以前那些迁移方式都会翻车小宇一开始也是半信半疑。他把市面上的迁移路子挨个试了一遍最后摆在一起对比高下立判迁移方式层级结构内部链接图片附件数据是否出本机手工复制粘贴丢失失效丢失否OneNote 自带导出扁平化失效可用否在线转换网站扁平化失效看运气是onenote-md-exporter完整保留转为双链完整保留否他总结出这个工具的三点底气也正好对应了三类痛点第一数据从头到尾不出你的电脑。它直接调用本机安装的 OneNote 和 Word官方 COM 接口读取原始内容不依赖任何云服务。对存着客户资料和私人日记的人来说上传到网页再下载这条路本身就不可接受。第二笔记本的骨架完整保留。分区变文件夹分区组变嵌套目录子页面默认挂成父页面的下级文件夹。导出的目录树和 OneNote 里看到的结构几乎一一对应而不是把所有页面哗啦一下倒进同一个文件夹。第三它天生就是给 Obsidian、Joplin 这类 Markdown 编辑器设计的。内部链接能转成[[双链]]每篇笔记可自动带创建/更新时间的 Front Matter 头还内置 Pandoc 兜底复杂表格。这些设计在配置项appSettings.json里全部可见可调。它为什么转得稳看懂三层生产线小宇后来翻源码才弄明白转换稳不是玄学而是流水线分工明确。相关代码在src/OneNoteMdExporter/Services/目录下MdExportService.cs和ConverterService.cs就是核心。第一层取料通过 OneNote COM 接口把每页内容原样导出成 DocX图片、附件、分页结构在这一步都被完整抓下来第二层翻译交给 Pandoc 把 DocX 翻译成 Markdown默认 GitHub Flavored 语法即 gfm第三层打磨最后跑一轮基于正则的后处理修复多余空行、误生成的引用块、HTML 残留等毛刺。理解了这条双引擎 后处理的链路你就明白为什么它比任何单步转换都稳——每一层只干一件事出问题也好定位。亲手跑一遍从克隆到第一份 Markdown动手前先确认三件事Windows 10 及以上、OneNote 2013 及以上微软商店版不支持、Word 2013 及以上。然后按下面的顺序走1. 拿工具。命令行里克隆仓库git clone https://gitcode.com/gh_mirrors/on/onenote-md-exporter2. 装转换引擎。进入src/OneNoteMdExporter/pandoc/目录把里面的pandoc-3.8.3-windows-x86_64.zip解压让pandoc.exe和压缩包待在同一个文件夹。没有这一步程序会找不到格式转换器。3. 让 OneNote 就位。启动 OneNote确认要导出的笔记本已加载并同步完成。程序读的是实时状态笔记本没打开可不行。4. 开跑。最简单的做法是双击OneNoteMdExporter.exe它会列出本机所有笔记本让你勾选对象、选格式、现场改高级设置。想要无人值守就用命令行OneNoteMdExporter.exe --notebook 我的笔记本 --format 1 --no-input--format 1是 Markdown 文件夹格式--format 2是 Joplin 原始目录格式--no-input表示全自动、零交互。跑完你会得到类似这样的结构我的笔记本/ ├─ 工作项目/ │ ├─ 需求文档/ │ │ ├─ 需求评审.md │ │ └─ 技术方案.md │ └─ 周报.md ├─ 生活随笔.md └─ resources/ ├─ 截图1.png └─ 附件.pdf页面是.md文件图片和附件统一收在resources文件夹Markdown 内部用相对路径引用——丢进 Obsidian 仓库就能直接用不用再改任何路径。第一次跑挂的复盘COMException 到底怎么排查小宇第一次运行就撞上System.Runtime.InteropServices.COMException屏幕上红字一闪他差点把电脑关了。冷静下来后他是按这个思路一步步排查的先看日志程序同目录下的logs.txt会记录详细错误堆栈比看弹窗有用得多判断握手失败这个异常基本意味着程序没能和 OneNote 组件建立连接多半是本机 Office 安装有问题而不是代码 bug找最省事的解法与其重装 Office可能连带影响别的软件不如按doc/notebook-onepkg-export.md的说明把笔记本导出成.onepkg包换一台干净的电脑导入后再导出 Markdown。效果一样风险更低。排障的原则很简单先日志、后重装、再换机一步比一步重别一上来就动大手术。另外四个坑提前知道能省一下午导出后图片是坏的多半是 OneNote 本地没缓存图片。到「文件 → 选项 → 同步」里勾上下载所有文件和图像强制同步一次再重新导出即可。密码保护的分区变空了导出前手动解锁锁着的分区内容不会进结果。手写笔迹直接消失这是工具明确的边界README.md里写得很清楚手写不支持转换导出的笔记要心里有数。文件名太长报路径超限把appSettings.json里的MdMaxFileLength调小比如 50 改成 30从源头避开 Windows 路径过长问题。两套免调教参数组合按目的地自取迁去 Obsidian 的推荐组合把OneNoteLinksHandling设为ConvertToWikilink内部链接变成[[双链]]双向链接直接可用ProcessingOfPageHierarchy保持HierarchyAsFolderTree层级就是文件夹AddFrontMatterHeader设为true每篇笔记自动带创建/更新时间方便检索。迁去 Joplin 的推荐组合格式选 2链接策略换成ConvertToMarkdown导出后用 Joplin 的RAW - Joplin Export Directory方式导入标签和层级都能对上。细节可看doc/migration-to-joplin.md。想一次全导出加--all-notebooks参数它会忽略--notebook把所有笔记本挨个处理OneNoteMdExporter.exe --all-notebooks --format 1 --no-input收好这份行动清单克隆仓库按上文把pandoc.exe解压就位拿一个最常用的小笔记本试跑全程开着 OneNote 等它同步完成对照appSettings.json按目的地平台Obsidian 还是 Joplin调好链接策略导出后随机抽查十几篇带表格、图片的笔记确认质量遇错先看logs.txt再带着日志去找答案。也要说句公道话它不支持手写笔迹密码分区不解锁就会丢复杂表格依赖编辑器支持 HTML——这些边界在动手前就该知道。但对绝大多数普通笔记来说这是小宇试过的最省心的一条路。剩下的就是打开 Obsidian和那些老笔记好好重逢。【免费下载链接】onenote-md-exporterConsoleApp to export OneNote notebooks to Markdown formats项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考