找回密码
 立即注册
查看: 2944|回复: 1

分享一个自产的自动归档torrent文件的脚本

16

主题

152

回帖

164

VC币

荣誉会员

Rank: 14Rank: 14Rank: 14Rank: 14

积分
116233

崭露头角活跃达人

白喵 发表于 2022-12-23 23:53:26 | 显示全部楼层 |阅读模式
本帖最后由 白喵 于 2023-10-11 02:26 编辑

-- 2023.02.25 更新
脚本里的REM注释有影响到命令执行,去掉注释重新上传了

--
作用:

种子任务下载完后希望把种子文件自动复制(+重命名)到下载地址,和目标文件(夹)放在一起。

这样日后校验管理都比较方便。
不知道其他人有没有这样的需求,于是好几年前自己写了个脚本,今天看到论坛内其他人的分享也来凑个热闹~~


适用:
操作系统:windows
软件: qBitTorrent, uTorrent ..

用法:
1. 解压附件,会有个 bat 脚本
2. 以qBitTorrent为例(uTorrent也可以类似配置),在选项->下载 配置中, 如图勾选并配置脚本路径和入参为:
QQ截图20221224001012.jpg
  1. [脚本路径] "%I" "%D" "%N" "%L" R
复制代码
- 以我本地为例,我的脚本放在"D:\Program_Data\qBittorrent"这个路径下,我这里填的是这样:
  1. D:\Program_Data\qBittorrent\copy_torrentseed.bat "%I" "%D" "%N" "%L" R
复制代码
- 最后面的 "R" 表示按任务名重命名种子文件, 去掉则表示直接以 hash 命名

3. 创建下载任务时,选择 分类 或 其父类 名称带有 "BDrip" 字段的分类

QQ截图20221224000406.jpg

- 本人只有 BDrip 需要顺便归档种子文件,其他没有这样的需求,因此设了这个条件,希望所有任务都执行拷贝操作的可以在文件中找到这样的代码:
  1. [url=home.php?mod=space&uid=30842]@Rem[/url] 这里触发拷贝的条件是 任务分类为"BDrip" 时触发, 也可把触发条件删掉, 或按自己需求修改
  2. echo %Category% | findstr "BDrip" >nul
  3. if {%errorlevel%}=={0} goto BEGIN

  4. @REM OTHERS 只打印日志, 不进行拷贝
  5. goto OTHERS
复制代码

改为:
  1. goto BEGIN
复制代码

不能上传bat文件,打了个包





--
题外话
1. 原理就是利用下载软件完成任务后可自动执行外部文件的能力
2. qbt 或 ut 在使用种子或磁力链创建下载任务时,默认会在该目录: %LocalAppData%\qBittorrent\BT_backup\ 下以哈希值为名备份种子文件,因此可以做到任务完成后对齐进行归档,%LocalAppData% 即为环境变量中当前用户目录下的AppData路径。
| 关于第2点,特别感谢 @SpringBoot 在 本站这篇帖子 的指导

- 各位按自己需要进行修改, 比如修改自己期望生效的分类名,或去掉分类名限制,或改为按标签匹配


  1. @echo off
  2. set script_path=%~dp0

  3. set HashValue=%~1
  4. set MissionPath="%~2"
  5. set MissionName="%~3"

  6. set TorrentFile=%HashValue%.torrent
  7. set TorrentFilePath=%LocalAppData%\qBittorrent\BT_backup\

  8. set Category=%4%

  9. @REM 拷贝torrent文件时是否需要重命名 "R" 表示需要
  10. set Rename=%5%

  11. @REM 这里触发拷贝的条件是 任务分类为"BDrip" 时触发, 也可把触发条件删掉, 或按自己需求修改
  12. echo %Category% | findstr "BDrip" >nul
  13. if {%errorlevel%}=={0} goto BEGIN

  14. @REM OTHERS 只打印日志, 不进行拷贝
  15. goto OTHERS

  16. :BEGIN
  17. if {%Rename%}=={R} goto RENAME

  18. @REM 直接拷贝
  19. set COMMOND=copy "%TorrentFilePath%%TorrentFile%" %MissionPath%
  20. goto START

  21. @REM 拷贝+重命名
  22. :RENAME
  23. set COMMOND=copy "%TorrentFilePath%%TorrentFile%" "%MissionPath:~1,-1%\%MissionName:~1,-1%.torrent"

  24. @REM 无需打印日志的话, 把 >>"%script_path%/copy_torrentseed.log" 的部分删除即可

  25. :START
  26. (
  27. echo ---- %date% %time% ----
  28. echo script_path: %script_path%, HashValue: %HashValue%, MissionPath: %MissionPath%,  MissionName: %MissionName%
  29. echo COMMOND: %COMMOND%
  30. %COMMOND%
  31. echo.
  32. )>>"%script_path%/copy_torrentseed.log"
  33. goto END

  34. :OTHERS
  35. (
  36. echo ---- %date% %time% ----
  37. echo script_path: %script_path%, HashValue: %HashValue%, MissionPath: %MissionPath%,  MissionName: %MissionName%
  38. )>>"%script_path%/copy_torrentseed.log"

  39. :END
复制代码













copy_torrentseed.zip

563 Bytes, 下载次数: 120

回复

使用道具 举报

0

主题

6

回帖

0

VC币

中级会员

Rank: 3Rank: 3

积分
5318
AlexC先生 发表于 2022-12-24 00:46:43 | 显示全部楼层
不错,玩pt的很需要这样的东西
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表