白喵 发表于 2022-12-23 23:53:26

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

本帖最后由 白喵 于 2023-10-11 02:26 编辑

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

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

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


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

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

[脚本路径] "%I" "%D" "%N" "%L" R- 以我本地为例,我的脚本放在"D:\Program_Data\qBittorrent"这个路径下,我这里填的是这样:
D:\Program_Data\qBittorrent\copy_torrentseed.bat "%I" "%D" "%N" "%L" R- 最后面的 "R" 表示按任务名重命名种子文件, 去掉则表示直接以 hash 命名

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



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

@REM OTHERS 只打印日志, 不进行拷贝
goto OTHERS
改为:
goto BEGIN
不能上传bat文件,打了个包





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

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


@echo off
set script_path=%~dp0

set HashValue=%~1
set MissionPath="%~2"
set MissionName="%~3"

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

set Category=%4%

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

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

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

:BEGIN
if {%Rename%}=={R} goto RENAME

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

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

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

:START
(
echo ---- %date% %time% ----
echo script_path: %script_path%, HashValue: %HashValue%, MissionPath: %MissionPath%,MissionName: %MissionName%
echo COMMOND: %COMMOND%
%COMMOND%
echo.
)>>"%script_path%/copy_torrentseed.log"
goto END

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

:END













AlexC先生 发表于 2022-12-24 00:46:43

不错,玩pt的很需要这样的东西
页: [1]
查看完整版本: 分享一个自产的自动归档torrent文件的脚本