前言:随着 Notion 与 AI 的深度整合,Notion 已成为个人知识管理的优选平台。本文详细介绍如何将印象笔记(Evernote)的内容完整迁移到 Notion 中。
📋 目录
准备工作
所需工具下载
| 工具 | 用途 | 下载地址 |
|---|---|---|
| evernote-backup | 导出印象笔记为 ENEX 格式 | GitHub Releases |
| enex2notion | 将 ENEX 文件导入 Notion | GitHub Releases |
系统要求
- 操作系统:Windows 10/11
- 网络环境:需要稳定的网络连接(访问印象笔记和 Notion 服务)
- 代理工具:VPN 代理(可选,根据网络环境决定)
步骤一:导出印象笔记数据
1.1 下载并配置 evernote-backup
- 下载 Windows 版本的
evernote-backup.exe - 创建工作目录,例如
E:\soft\evernote - 将
evernote-backup.exe放入该目录
1.2 初始化数据库并登录
打开命令提示符(CMD),进入工作目录:
cd E:\soft\evernote
执行初始化命令(印象笔记国内版):
evernote-backup.exe init-db --backend china
注意:如果是国际版 Evernote,去掉
--backend china参数。
执行后会自动打开浏览器,完成印象笔记账号的 OAuth 授权登录。
然后sync数据
evernote-backup.exe sync
1.3 导出数据为 ENEX 格式
创建输出目录并执行导出:
mkdir output_dir
evernote-backup.exe export output_dir
可选参数:
# 导出为单独笔记(每个笔记一个 ENEX 文件)
evernote-backup.exe export output_dir
导出完成后,output_dir 目录下会生成多个 .enex 文件,按笔记本分类:
output_dir/
├── 001-写作.enex
├── 002-AI-Education.enex
├── 100-输出/
│ ├── 003-2019-Output.enex
│ └── 003-2020-Output.enex
└── ...
1.4 刷新认证(如需要)
如果 OAuth token 过期,执行:
evernote-backup.exe reauth
步骤二:获取 Notion Token
2.1 打开 Notion 网页版
- 访问 notion.so
- 使用浏览器登录你的 Notion 账号
2.2 打开浏览器开发者工具
| 浏览器 | 快捷键 |
|---|---|
| Chrome/Edge | F12 或 Ctrl + Shift + I |
| Firefox | F12 或 Ctrl + Shift + I |
| Safari | Command + Option + I |
2.3 定位并复制 token_v2
- 切换到 Application(应用) 标签页
- 在左侧边栏找到 Cookies → https://www.notion.so
- 找到名为
token_v2的 Cookie - 复制其 Value 值(约 162 个字符)
提示:建议将 token 保存到文本文件中,方便后续使用。
步骤三:导入到 Notion
3.1 下载 enex2notion
- 下载 Windows 版本的
enex2notion.exe - 放入工作目录
E:\soft\evernote
3.2 配置代理(如需要)
如果你的网络环境需要代理访问 Notion,需要设置环境变量:
在批处理脚本中设置:
set HTTPS_PROXY=http://127.0.0.1:端口号
set HTTP_PROXY=http://127.0.0.1:端口号
示例:如果你的代理端口是 7890
set HTTPS_PROXY=http://127.0.0.1:7890 set HTTP_PROXY=http://127.0.0.1:7890
3.3 单文件导入测试
先测试导入一个小文件:
enex2notion.exe --mode PAGE --root-page "Evernote Import 1" --token "你的token" ".\output_dir\001-写作.enex"
参数说明:
| 参数 | 说明 |
|---|---|
--mode PAGE | 导入模式为页面模式 |
--root-page | 指定根页面名称(必须唯一,不能重复) |
--token | Notion 认证 token |
| 文件路径 | ENEX 文件的完整路径 |

3.4 查看导入结果
- 打开 Notion,刷新页面
- 查找名为 “Evernote Import 1” 的新页面
- 展开页面,确认内容导入成功
步骤四:批量导入脚本
4.1 创建批处理脚本
由于 enex2notion 限制每次导入需要使用新的 root 页面名,我们可以创建一个批处理脚本自动处理。
创建 import_batch.bat:
@echo off
setlocal enabledelayedexpansion
chcp 65001 >nul
REM 自动导入剩余的Evernote笔记到Notion
REM 每个文件使用新的root页面名
REM ========== 配置区域 ==========
REM 代理设置(如不需要代理,请注释掉这两行)
set HTTPS_PROXY=http://127.0.0.1:7890
set HTTP_PROXY=http://127.0.0.1:7890
REM Notion Token(请替换为你自己的token)
set TOKEN=v03%%3A你的完整token值
REM 起始root页面编号(根据已导入数量调整)
set PAGE_NUM=1
REM ========== 配置结束 ==========
echo === 批量导入开始 ===
echo.
REM ========== 导入文件列表 ==========
REM 请根据你的实际文件列表修改下面的命令
REM 语法:call :ImportFile "文件路径"
call :ImportFile ".\output_dir\001-写作.enex"
call :ImportFile ".\output_dir\002-AI-Education.enex"
call :ImportFile ".\output_dir\500.enex"
REM ========== 文件列表结束 ==========
set /a LAST_PAGE=!PAGE_NUM! - 1
echo === 批量导入完成 ===
echo 已导入到 Notion 的页面: Evernote Import 1 ~ Evernote Import !LAST_PAGE!
pause
goto :eof
:ImportFile
set FILE=%~1
if exist "%FILE%" (
set ROOT_PAGE=Evernote Import !PAGE_NUM!
set DONE_FILE=.\done_!PAGE_NUM!.txt
echo [!PAGE_NUM!] 导入: %FILE%
echo Root页面: !ROOT_PAGE!
.\enex2notion.exe --mode PAGE --root-page "!ROOT_PAGE!" --done-file "!DONE_FILE!" --skip-failed --token "%TOKEN%" "%FILE%"
if errorlevel 1 (
echo X 失败(已跳过)
) else (
echo √ 成功
)
echo.
set /a PAGE_NUM=!PAGE_NUM!+1
) else (
echo 文件不存在: %FILE%
)
goto :eof
4.2 脚本使用说明
- 配置代理:如需代理,修改
HTTPS_PROXY和HTTP_PROXY的端口号 - 配置 Token:将
你的完整token值替换为实际的 token_v2 值 - 配置页面编号:
PAGE_NUM设置起始编号(避免与已导入页面冲突) - 添加文件:在
导入文件列表区域添加你要导入的 ENEX 文件路径 - 运行脚本:双击
import_batch.bat运行
4.3 关键参数说明
| 参数 | 说明 |
|---|---|
--done-file | 记录已导入笔记的文件,支持断点续传 |
--skip-failed | 跳过失败的笔记,继续导入后续内容 |
问题 1:认证失败
错误信息:ERROR: Invalid token provided!
解决方法:
- 检查 token 是否完整
- 重新从浏览器获取 token
- 确认 token 没有多余的空格或换行符
问题 2:网络连接失败
错误信息:连接超时或无法访问 Notion
解决方法:
- 配置正确的代理设置
- 检查代理端口是否正确
- 尝试直接访问 notion.so 确认网络畅通
问题 3:Root 页面冲突
错误信息:页面已存在
解决方法:
- 修改
PAGE_NUM起始值 - 或手动在 Notion 中删除旧的导入页面
- 确保每次导入使用唯一的 root-page 名称
问题 4:导入中断
解决方法:
- 使用
--done-file参数记录进度 - 使用
--skip-failed参数跳过失败项 - 重新运行脚本会自动跳过已导入的笔记
问题 5:中文内容乱码
解决方法:
- 在批处理脚本开头添加:
chcp 65001设置 UTF-8 编码 - 确保 ENEX 文件是 UTF-8 编码格式
📊 导入后的整理建议
- 合并页面:导入完成后,可以在 Notion 中手动合并多个 “Evernote Import” 页面
- 重建结构:根据原笔记本结构,在 Notion 中重建页面层级
- 检查内容:重点检查附件、图片、代码块等特殊内容
- 设置标签:使用 Notion 的数据库功能,为笔记添加标签和属性
🔗 参考资料
⚠️ 注意事项
- Token 安全:token_v2 相当于你的账号密码,请妥善保管,不要分享给他人
- 数据备份:迁移前请确保印象笔记数据已完整备份
- 非官方工具:enex2notion 使用 Notion 内部 API,可能存在稳定性问题
- 速率限制:Notion 可能有 API 调用频率限制,大批量导入时注意节奏
作者注:本文基于实际迁移经验整理,如遇问题欢迎在评论区交流讨论。
&spm=1001.2101.3001.5002&articleId=158963104&d=1&t=3&u=7b318676edc64f179f35c4c38e2e71de)
311

被折叠的 条评论
为什么被折叠?



