用onenote-md-exporter,一次导出保住300页笔记的格式与层级
2026/8/29 13:23:52 网站建设 项目流程

用onenote-md-exporter,一次导出保住300页笔记的格式与层级

【免费下载链接】onenote-md-exporterConsoleApp to export OneNote notebooks to Markdown formats项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter

周五下午,我盯着OneNote里那个攒了五年、整整300页的工作笔记本发愁:公司要求把所有资料迁到Obsidian,可手动复制粘贴试了几页就放弃了——表格变形、层级扁平、图片全部错位。直到同事递给我一个叫onenote-md-exporter的Windows命令行工具,它专门解决"把OneNote笔记本完整导出为Markdown"这件事。如果你也正为笔记迁移发愁,这篇文章会带你完整走一遍从安装到批量自动化的全过程。

第一次导出:从双击exe到喝上咖啡

安装前的三件事

onenote-md-exporter 是个Windows控制台程序,运行前提很朴素:Windows 10以上、OneNote 2013以上(注意:Windows商店版不支持,得用桌面版)、Word 2013以上。它之所以需要Office,是因为底层直接调用OneNote和Word的官方COM接口来读取内容,再用内置的Pandoc引擎把文档转成Markdown。

获取工具很简单,把它下载并解压到任意目录即可:

git clone https://gitcode.com/gh_mirrors/on/onenote-md-exporter

解压后你会看到OneNoteMdExporter.exeappSettings.json两个核心文件,前者是主程序,后者是全部配置项。动手之前先做两件事:一是启动OneNote并确认要导出的笔记本已完全加载同步;二是如果有些分区设了密码,先解锁,否则这些分区会直接丢失。

跟练四步,产出第一个成果

第一步:双击OneNoteMdExporter.exe,按回车跳过欢迎页。预期结果:程序列出你账号下所有笔记本,前面带序号。常见偏差:如果报COMException或提示无法连接OneNote,多半是OneNote没完全启动,或Office安装有问题,稍后翻车现场有详细解法。

第二步:输入笔记本序号(输入0导出全部,也可用逗号分隔多个序号),回车。预期结果:程序询问导出格式,输入1(标准Markdown)或2(Joplin专用格式)。常见偏差:输错格式会提示重新选择,不会崩。

第三步:程序问是否修改设置,输入n跳过,回车。预期结果:程序开始逐页处理,屏幕滚动打印页面标题,你可以去倒杯水。常见偏差:几百页的笔记本要跑几分钟到十几分钟,别以为卡死了;实在不放心可以打开同目录下的logs.txt看实时日志。

第四步:等待"Export successful"提示,导出文件夹会自动在资源管理器中打开。预期结果:看到Exports/md/你的笔记本名-日期时间目录,里面分区变成文件夹,页面变成.md文件,图片和附件收在resources文件夹里。

至此你已拿到第一份成果。我第二次导出时就开始研究怎么让结果更贴合自己的平台,下面按三种角色拆解配置策略,你按身份取用即可。

新手:默认配置,先让结果"能用"

如果你是个人用户,目标是尽快把笔记搬进Obsidian或Typora,默认配置其实已经相当好用:页面层级按文件夹树展开、图片集中存放在resources根目录、OneNote内部链接自动转成[[页面名]]双链格式、每页开头带YAML元数据头。

唯一建议新手动手改一处:打开appSettings.json,把UseHtmlStyling保持为true。这样字体颜色、背景色、复杂表格会转成HTML标签,Obsidian和Typora都支持内嵌HTML,能保住这些视觉细节;如果你的编辑器不支持HTML再改成false

效率派:按平台微调,让结果"好用"

用过几次后你会发现,同一份笔记在不同编辑器里体验差别很大。效率派值得花十分钟做针对性配置。

迁往Obsidian:把OneNoteLinksHandling设为ConvertToWikilink(默认即是),双链可以直接点跳;ResourceFolderLocation改成PageParentFolder,让每张页面的图片跟随页面文件,方便日后单独移动单页而不丢图。

迁往Joplin:Joplin的导入机制不同,建议直接用格式2导出Joplin专用目录,并在Joplin里点击"文件 > 导入 > RAW - Joplin导出目录"完成导入。普通Markdown模式下则建议OneNoteLinksHandlingConvertToMarkdownPanDocMarkdownFormatgfm,图片引用交给PostProcessingMdImgRef优化。

页面标题有超长情况:把PageTitleMaxLength从50调小,能避免文件名过长导致路径超限报错。

团队与自动化:命令行批量导出

当你需要处理多个笔记本,或者想把它纳入定期备份流程,就该上命令行参数了。常用组合如下:

OneNoteMdExporter.exe --notebook "项目文档" --format 1 --output "D:\笔记备份" --no-input

这一句表示:导出名为"项目文档"的笔记本,输出为Markdown格式到指定目录,全程免交互。配合--all-notebooks可以一键导出全部笔记本,--ignore-errors让单页失败不中断整个任务。团队场景里,把它写进计划任务或脚本,就能实现"每周自动备份OneNote为开放格式"的长期机制,比手动导出可靠得多。

决策速查表:这个场景选这个方案

面对配置项时容易纠结,记住下面这张表就够了:

你的目标导出格式关键配置
迁入Obsidian/双链笔记Markdown(1)链接用ConvertToWikilink,资源放PageParentFolder
迁入JoplinJoplin(2)直接导入Joplin原始目录格式
通用编辑器/长期归档Markdown(1)链接用ConvertToMarkdown或Remove
多笔记本批量备份Markdown(1)命令行加--all-notebooks与--no-input

翻车现场:我踩过的坑和答案

现象:双击后直接抛Unhandled exception ... COMException

我第一次遇到就懵了,后来发现这是环境问题。原因通常是Office组件损坏,或OneNote没登录账号、没完成同步。解法按顺序试:先完整启动OneNote并登录;不行就修复Office安装;再不行,把笔记本导出为.onepkg包,换一台装了Office的电脑导入后再跑一遍导出。官方文档doc/notebook-onepkg-export.md里有完整的打包导出步骤。

现象:导出完发现图片大量缺失或红叉

排查发现多半不是工具的问题,而是OneNote本地没缓存完整图片。解法是进OneNote的"文件 > 选项 > 同步",打开"下载所有文件和图像",强制同步一次再重新导出。这一步对经常在多个设备间切换的用户尤其重要。

现象:分区顺序乱了,页面排序不对

工具按文件名排序,所以如果笔记靠"分区顺序"传递信息,导出后顺序可能变化。原因和限制在于标准Markdown目录没有原生的排序元数据。解法:一是在文件名前加数字前缀(如01_02_),二是需要严格保序的场景直接选Joplin格式,Joplin目录格式能保留分区和页面顺序。

现象:标签变成了emoji,公式消失了

这不是bug,是设计取舍:OneNote的文本标签(任务、星标等)会被转换成对应emoji,绘图会被扁平化为图片,而手写内容和密码分区目前不支持导出。解决方案是在导出前手动把关键手写内容截图进页面,重要密码分区先解锁。想确认某项内容支不支持,可以查看doc/migration-to-joplin.md里的逐项对比表,里面把每个格式的保留情况列得很清楚。

融入日常工作流:一份可直接套用的备份模板

工具真正的价值不在一次性迁移,而在于让"OneNote转Markdown"变成可重复的流程。下面是我现在每周五跑的PowerShell脚本,逻辑很简单:先列出要备份的笔记本,逐个调用导出,再核对生成的.md文件数量是否达标:

$notebooks = @("工作笔记", "学习资料") foreach ($nb in $notebooks) { OneNoteMdExporter.exe --notebook $nb --format 1 --no-input $md = (Get-ChildItem "Exports\md" -Recurse -Filter *.md | Measure-Object).Count Write-Host "$nb 导出完成,共 $md 个Markdown文件" }

配合Obsidian使用时,把导出目录直接放进Obsidian库所在磁盘,用Obsidian的"文件恢复"插件定期检查链接完整性;配合Joplin时则把Joplin格式的导出目录设为自动导入文件夹。这套组合让我在本地始终持有一份开放格式的实时备份,就算哪天Office订阅到期,笔记也永远在自己手里。

结尾行动清单:现在就做这三步

迁移不必一次做完,但今天可以先迈出这三小步:

  1. 备份OneNote原始笔记本(导出.onepkg或确认云端同步完整);
  2. 用默认配置跑一次小笔记本,对照上文四步核对导出结果;
  3. 打开appSettings.json,按你的目标平台(Obsidian或Joplin)改好链接和资源目录两项配置,再导出一次正式版本。

工具本身是开源的,代码和完整文档都在项目仓库里,遇到任何疑问都能查证。把五年的笔记从封闭格式里解放出来,换成任何人都能读取的Markdown——这份长期价值,值得你花一个下午去兑现。

【免费下载链接】onenote-md-exporterConsoleApp to export OneNote notebooks to Markdown formats项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询