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

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

  • TA的每日心情
    奋斗
    2023-4-30 00:19
  • 签到天数: 254 天

    [LV.8]以坛为家I

    16

    主题

    151

    回帖

    164

    VC币

    荣誉会员

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

    积分
    114946

    崭露头角活跃达人

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

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

    --
    作用:

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

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


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

    用法:
    1. 解压附件,会有个 bat 脚本
    2. 以qBitTorrent为例(uTorrent也可以类似配置),在选项->下载 配置中, 如图勾选并配置脚本路径和入参为:

    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" 字段的分类



    - 本人只有 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
    复制代码













    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具 举报

  • TA的每日心情

    2024-2-15 23:26
  • 签到天数: 49 天

    [LV.5]常住居民I

    0

    主题

    6

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

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

    使用道具 举报

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

    本版积分规则

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