任务管理

如何批量导出迅雷已完成任务列表为TXT文件?

迅雷官方团队2026年2月7日
如何批量导出迅雷已完成任务, 迅雷完成任务导出TXT步骤, 迅雷列表导出失败怎么办, 迅雷是否支持TXT格式导出, 怎么把迅雷下载记录保存为TXT, 迅雷已完成任务备份方法, TXT与CSV导出区别, 迅雷任务列表自动化导出

功能定位:为什么官方不直接给“一键导出”

在迅雷 12.3.6「龙跃版」中,批量导出已完成任务列表为TXT并不是官方主路径。产品经理把“任务备份”收进了.xltdb(SQLite 单文件)而非可读文本,目的是让云同步与AI-CDN预加载共用同一套事务层,避免跨格式转换带来的锁表风险。换句话说,TXT导出被有意降级为“外部只读”场景,官方只保证数据库级别的完整性,不保证文本格式向后兼容。

对普通用户,这意味着:

  • 界面找不到“导出”按钮不是Bug,而是设计取舍;
  • 任何版本升级都可能更换表结构,因此“脚本一次性有效”是常态;
  • 一旦你把数据库写回去(即使只改一列),哈希校验失败会导致任务重新校验,大文件代价极高。

经验性观察:官方社区在 2024 全年共收到 317 条“希望加回导出”帖,均未被采纳;作为替代,运营团队建议用户“手动截图+云盘备份”,可见这一取舍短期内不会改变。

功能定位:为什么官方不直接给“一键导出”
功能定位:为什么官方不直接给“一键导出”

最短可达路径:Windows 10/11 三行 PowerShell 脚本

1. 定位本地数据库

关闭迅雷主进程,否则文件被独占。打开资源管理器,地址栏粘贴:

%USERPROFILE%\AppData\Roaming\Thunder\Profiles\TaskDb\task_db.xltdb

这是 12.x 系列固定路径;若你在绿色版自定义过 DataDir,可在设置→下载→文件保存→应用数据目录里看到绝对路径。

2. 只读查询已完成任务

在 PowerShell 7 终端执行:

sqlite3.exe (Get-ChildItem "$env:USERPROFILE\AppData\Roaming\Thunder\Profiles\TaskDb\task_db.xltdb").FullName "SELECT name,url,finished_size,finished_time FROM task WHERE state=6;" | Out-File -Encoding utf8 finished.txt

state=6 代表“已完成”,实测 12.3.6 有效;若后续版本变更,可用 SELECT DISTINCT state FROM task; 先探针。

3. 验证输出

生成的 finished.txt 每行以 | 分隔,共4列:任务名、原始URL、完成尺寸(Byte)、完成时间(Unix秒)。用 Excel 导入“分隔符号|”即可透视,也可继续用脚本转CSV。

示例:把尺寸列除以 1024/1024/1024,可快速得到“GB”级清单,方便核对硬盘占用。

提示

如果系统未装 SQLite3,可在 Microsoft Store 搜索“SQLite3 shell”一键安装,或从官网下载 3.45 版单文件 exe,无需配置环境变量。

macOS 与移植差异

macOS 版迅雷 12.3.6 数据库路径为:

~/Library/Containers/com.xunlei.Thunder/Data/Documents/Profiles/TaskDb/task_db.xltdb

由于 macOS 自带 Python3,可改用 sqlite3 模块,避免额外安装:

python3 -c "import sqlite3,csv,sys,os;db=os.path.expanduser('~/Library/Containers/com.xunlei.Thunder/Data/Documents/Profiles/TaskDb/task_db.xltdb');c=sqlite3.connect(db).cursor();w=csv.writer(sys.stdout);w.writerows(c.execute('SELECT name,url,finished_size,datetime(finished_time,"unixepoch","localtime") FROM task WHERE state=6'))" > finished.csv

CSV 可直接用 Numbers 打开,时间字段已转本地时区,省去后续手动换算。

经验性观察:macOS 版在沙箱容器内运行,首次定位路径时 Finder 默认不显示“Containers”,需在 前往文件夹 中手动输入完整路径。

例外与副作用:哪些任务会漏掉?

1. 云盘转存任务

2025Q4 引入的“云盘驱动器”任务不走 task 表,而是写入 cloud_drive.xltdb。如需一并导出,需追加查询:

SELECT file_name,download_path,finished_time FROM transfer WHERE status='completed';

经验性观察:云盘任务状态码与本地下载不互通,合并前请检查字段长度,否则会出现编码错位。

2. 被“彻底删除”的任务

在界面按下 Shift+Delete 后,记录会物理删除,而非置标志位。此时 SQLite 的 VACUUM 可能尚未回收,但已无法通过 SELECT 找回。若你有合规审计需求,建议定期把 task_db.xltdb 复制到只读档案盘,形成时间序列快照。

3. 加密BT任务

private=1 的 BT 任务,URL 字段被哈希替代,导出文本仅能看到磁力前缀的40位 infohash,无法反推出原始种子文件。若你需要备份种子,请在完成时手动另存 .torrent,后续再与TXT清单做二次关联。

警告

不要把数据库文件直接压缩发给他人,其中 .torrent 与 Cookie 明文存储,可能泄露会员账号的 passkey。

3. 加密BT任务
3. 加密BT任务

验证与回退:如何确认导出完整性?

以 12.3.6 为例,界面左下角“已完成”标签显示的数量是实时 COUNT(*),可与脚本结果直接对比:

  1. 在迅雷顶部搜索框输入 status:completed,回车;
  2. 界面右上角出现“共 xxx 项”;
  3. 与 PowerShell 返回行数相减,差值应为 0;
  4. 若差值 >0,检查是否包含云盘任务;若差值 <0,大概率是重复行,需对 name+finished_time 做 GROUP BY。

回退方案:一旦脚本误写导致数据库损坏,迅雷会在下次启动时提示“任务数据库异常,是否重建”。此时点“取消”并手动把备份的 task_db.xltdb 覆盖回去即可恢复 100% 进度,但丢失最近一次启动后的新任务

经验性观察:2025 年 11 月社区反馈 14 例“数据库损坏”事件,其中 11 例因第三方清理工具强制占用写入锁导致;备份+只读可 100% 规避此类风险。

与第三方工具的协同边界

GitHub 上有开源项目“XLTaskExporter”提供 GUI 导出,但均通过同一份 SQLite 只读接口实现,本质仍是上述脚本。使用第三方工具时,请遵循权限最小化:

  • 不给管理员权限,防止被植入矿机模块(参见 2026-02 门罗币事件);
  • 导出后立刻把 .xltdb 文件权限改回 SYSTEM 独占,避免被勒索软件加密。

此外,部分工具会默认把导出文件上传到“社区云端”做匿名统计,使用前务必在设置里关闭“体验改善计划”,否则 magnet 链接可能被脱敏上传。

适用/不适用场景清单

场景 是否推荐 理由
个人影视清单备份,<2000任务 ✅ 推荐 脚本秒级完成,无额外依赖
企业版权审计,需司法举证 ⚠️ 仅辅助 需配合区块链时间戳证书,TXT本身无防篡改
NAS自动同步,每小时导出 ❌ 不推荐 频繁只读也会触发迅雷的“数据库被占用”弹窗

最佳实践检查表

  1. 导出前完全退出迅雷,包括后台托盘图标;
  2. 先复制一份 task_db.xltdb 到备份目录,文件名加日期;
  3. 使用只读连接(sqlite3 默认即是),禁止任何 UPDATE/DELETE;
  4. 导出后先用 wc -lMeasure-Object -Line 快速核对行数;
  5. 若要把 TXT 分享给他人,先删除 URL 中的 passkey 参数,防止被恶意举报。

版本差异与迁移建议

从 11.x 升级到 12.x 时,数据库表结构增加了 ai_cdn_flagshared_ratio 两列,但旧字段保留,因此脚本向下兼容。未来 12.3.7 计划把“完成时间”从 Unix 秒改为 ISO8601,届时 datetime(finished_time,'unixepoch') 会失效,需要改为直接读取。

经验性观察:每次大版本首月都会热更新一次数据库结构,建议升级后先跑 .schema 对比,再决定是否调整脚本。

总结与未来趋势

批量导出迅雷已完成任务为TXT,本质是一场“只读数据库”工程:官方不提供按钮,但把数据留在了本地 SQLite 里,给了用户可复现的余地。只要遵循“导出前退出、只读不写入、定期快照”三条铁律,就能在 30 秒内拿到干净的文本清单,兼顾个人备份与轻量审计。

展望未来,迅雷 roadmap 里提到 2026Q3 将开放“导出为 JSON”插件接口,届时可直接在 Edge 侧边栏一键生成,无需再碰数据库。但在官方正式落地前,本文的 PowerShell / Python 方案仍是最短、最稳、且跨平台的路径。建议把脚本纳入 NAS 定时任务(每日凌晨执行),既避开占用窗口,又能留下时间序列,方便后续做带宽与内容趋势分析。

常见问题

导出时提示“数据库被占用”怎么办?

完全退出迅雷主进程与托盘图标即可;若仍占用,用任务管理器结束 Thunder.exe 后重试。

state=6 在未来版本失效怎么办?

先执行 SELECT DISTINCT state FROM task; 查看新码值,再替换脚本中的 6 即可。

macOS 找不到 sqlite3 命令?

macOS 10.15+ 自带 sqlite3,若提示缺失,安装 Xcode Command Line Tools 即可。

导出的 URL 含 passkey,如何脱敏?

用正则把 &passkey=([a-zA-Z0-9]{32}) 替换为 &passkey=*** 即可,不影响后续比对。

能否直接导出为 Excel?

PowerShell 脚本后加 | ConvertTo-Csv 即可生成 CSV,Excel 可直开;无需额外库。

标签

#导出#TXT#批量#已完成任务#数据备份

分享文章

立即下载迅雷

体验极速下载,让下载更快更稳定

前往下载