一条命令把 2000 篇 OneNote 笔记导出为 Markdown,我这样搬进 Obsidian

发布时间:2026/10/6 22:45:08

一条命令把 2000 篇 OneNote 笔记导出为 Markdown,我这样搬进 Obsidian 一条命令把 2000 篇 OneNote 笔记导出为 Markdown我这样搬进 Obsidian【免费下载链接】onenote-md-exporterConsoleApp to export OneNote notebooks to Markdown formats项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter同事把onenote-md-exporter甩给我的那个下午我刚在 Obsidian 里摔完第二跤。这个跑在 Windows 上的命令行小工具能把 OneNote 笔记本完整导出为 Markdown 格式适配 Obsidian、Joplin 等主流笔记软件。回头看那是我和两千多篇老笔记真正重逢的起点。手抄式搬家翻车后我决定换条路存了五年的 OneNote 笔记本从学生时代的课件到工作后的技术方案我一直当宝贝供着。去年年底动了迁到 Obsidian 的心思第一反应是复制粘贴不就完事了。结果粘贴第一张带表格的页面我整个人都傻了表格碎成一地文本图片变成一串乱码文件名子页面全部平铺进同一个文件夹。2000 多篇笔记这种搬法等于把整个家倒进一只大麻袋到了新家只能趴在地上慢慢认领。OneNote 自带的导出我也试过层级直接扁平化内部链接全军覆没。网上那些在线转换工具更不敢碰——笔记里全是客户资料和私人日记想到要上传到别人的服务器脊背就一阵发凉。三种常见方案都栽了差异到底在哪把几天的折腾摆在一起看差距一目了然迁移方式层级结构内部链接图片附件数据是否离开本机手工复制粘贴丢失失效丢失否OneNote 自带导出扁平化失效可用否在线转换网站扁平化失效看运气是需上传云端onenote-md-exporter完整保留转成双链完整保留否全程本地同事说这工具导出完基本不用改。原理其实不复杂它调用本机 OneNote 的 COM 接口读取原始内容把每页先导出成 DocX再交给内置的 Pandoc 翻译成 Markdown最后跑一轮正则后处理修补格式毛刺。双引擎 后处理全程离线比任何单步转换都稳。上手 onenote-md-exporter从克隆到第一份 Markdown只花四十分钟确认环境是 Windows 10、桌面版 OneNote 2013 及以上微软商店版不支持、Word 2013 及以上我就照着同事的指引开干了。先把仓库克隆下来把 Pandoc 解压到位git clone https://gitcode.com/gh_mirrors/on/onenote-md-exporter克隆完进入src/OneNoteMdExporter/pandoc/把里面的pandoc-3.8.3-windows-x86_64.zip解压让pandoc.exe和压缩包待在同一目录。这一步千万别跳过——Pandoc 是负责翻译的引擎没它就转不动。让 OneNote 先把笔记本加载完工具读的是 OneNote 的实时状态所以我先启动 OneNote确认要导出的笔记本已经打开、同步完成才继续下一步。一行命令指定笔记本和格式OneNoteMdExporter.exe --notebook 我的笔记本 --format 1 --no-input逐参数拆开看--notebook指定要导出的笔记本名--format 1是 Markdown 文件夹格式2则是 Joplin 原始目录格式--no-input表示全自动全程不用人工确认。想偷懒也可以直接双击OneNoteMdExporter.exe它会列出本机所有笔记本让你勾选。跑完以后目录长这样我的笔记本/ ├─ 工作项目/ │ ├─ 需求文档/ │ │ ├─ 需求评审.md │ │ └─ 技术方案.md │ └─ 周报.md ├─ 生活随笔.md └─ resources/ ├─ 截图1.png └─ 附件.pdf页面是.md文件图片和附件统一收进resources文件夹正文里用相对路径引用。每篇笔记开头还自动带上了 YAML 头记录标题、创建时间和更新时间——放进 Obsidian 仓库直接就能用不用再改任何路径。第一次运行就报 COMException我这样排查第一晚没那么顺利。命令敲下去屏幕弹出一行System.Runtime.InteropServices.COMException我心里一凉以为要重装 Office。后来搞清楚了这是程序没能和 OneNote 组件握手多半是本机 Office 安装出了问题。最省事的解法不是重装而是按doc/notebook-onepkg-export.md的说明把笔记本导出成.onepkg包换一台干净的电脑导入后再跑一遍导出效果一样风险更低。图片变坏、分区变空、笔迹消失三个高频坑一次说清跑顺之后我又在抽查时踩过几个小坑每个都按现象 → 原因 → 对策给你标好了导出后图片是坏的现象Markdown 里引用的图片打不开原因OneNote 本地根本没缓存图片对策到「文件 → 选项 → 同步」勾上下载所有文件和图像强制同步一次再重新导出密码保护的分区是空的现象某个分区在导出结果里完全消失原因锁着的分区不会被读取对策导出前手动解锁别指望工具替你撬锁手写笔迹消失了现象手写内容在.md里找不到原因这是工具明确的边界手写不支持转换对策导出前心里有数需要手写内容就另外备份原笔记本文件名过长报路径超限现象导出中途报路径太长的错误原因标题特别长的页面撑爆了 Windows 路径上限对策去appSettings.json把PageTitleMaxLength、MdMaxFileLength调小从源头避开跑顺之后我给 Obsidian 和 Joplin 各调了一套配置工具默认值已经很能打但针对不同目标软件我试出两个组合你直接抄给 Obsidian 的组合把链接策略改成ConvertToWikilinkOneNote 内部链接自动变成[[双链]]双向链接直接可用ProcessingOfPageHierarchy保持HierarchyAsFolderTree层级继续用文件夹表达AddFrontMatterHeader设为true给每篇笔记留好创建、更新时间。AddFrontMatterHeader: true, ProcessingOfPageHierarchy: HierarchyAsFolderTree, OneNoteLinksHandling: ConvertToWikilink给 Joplin 的组合导出时格式选2把OneNoteLinksHandling换成ConvertToMarkdown生成 Joplin 原始目录导入后标签和层级都能对上。如果笔记本太多还有一条全量命令周末泡杯咖啡就能一次性搬完OneNoteMdExporter.exe --all-notebooks --format 1 --no-input它会把--notebook参数忽略掉把本机所有笔记本挨个处理一遍。出发前收好这份自检清单如果你也动了迁移的心思按这个顺序走基本不会翻车克隆仓库把pandoc.exe解压就位先拿一个最常用的小笔记本试跑全程开着 OneNote 等它同步完对照appSettings.json按目标平台Obsidian 还是 Joplin调好链接策略导出后随机抽查十几篇带表格、图片的笔记确认质量出问题先翻同目录下的logs.txt带着日志去提问或参与改进效率高很多。知识搬家从来不是一夜之间的事但最痛苦的那一步已经有人替你走完了。剩下的就是打开 Obsidian和那些老笔记好好重逢。我的时间胶囊已经打开里面每一页都还认得我。核心关键词OneNote 导出 Markdown 长尾关键词OneNote 笔记迁移 Obsidian、OneNote 转 Obsidian 双链、onenote-md-exporter 使用教程【免费下载链接】onenote-md-exporterConsoleApp to export OneNote notebooks to Markdown formats项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/28 0:49:54

【Spring框架学习(八)】:Spring源码整体流程总结

Spring框架学习系列:《Spring框架学习(一):从设计思想到核心架构全面认识Spring》《Spring框架学习(二):IOC核心原理解析,为什么Autowired可以自动注入?》《Spring框架学…

2026/10/6 23:59:55

回溯法详解:LeetCode 46. 全排列

一、 问题描述给定一个不含重复数字的数组 nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例:输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]二、 核心思路:回溯 (Backtrac…

2026/10/6 23:59:55

【Web全栈进阶】PostgreSQL上手:Docker跑库 + 把早报站从SQLite迁过去

今天不写新功能,做一次“搬家”:把早报站的数据从SQLite搬进PostgreSQL——这是整个二季的地基工程。 🎯 本篇产出:一个跑在Docker里的PostgreSQL、一份可重复执行的数据迁移脚本、以及“为什么换”的完整决策链。含代码约60行。 …

2026/10/6 23:59:55

AI获客怎样减少重复线索?意客AI的原文复用与版本筛选

销售昨天看过一条办公室搬迁需求,今天又在“新线索”里看到它。如果对方已经暂停搬迁,第二次出现带来的只是一次重复阅读;如果需求范围变了,沿用昨天的沟通准备还可能问错问题。 星河卓越旗下意客AI根据业务描述寻找匹配需求&…

2026/10/6 23:59:55

装配车间MES落地指南:SimpleMES工单流转、BOM与齐套检查实战

简介:一套基于.NET 4.0的SimpleMES加工装配模拟系统,面向MES系统学习者、课程设计或毕业设计人员,以及需要快速搭建制造执行原型的开发者。服务端与客户端分工明确:服务端包含基础档案、加工与装配计划管理、实时看板和数据初始化…

2026/10/6 23:54:55

26年程序员转AI指南:收藏这份学习路线,轻松拥抱大模型时代!

文章分享了程序员如何成功转型AI领域的心得与经验。核心内容围绕五个学习阶段展开:先理解大模型调用本身,再学习AI应用开发所需能力,重点掌握RAG,随后学习Agent,最后通过项目实践积累经验。强调理解模型、业务和工程的…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/6 4:01:51

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑