qBitTorrent v4.3.0移除.unwanted目录导致批处理脚本失效的解决问询
解决qBittorrent v4.3.0+跳过文件导致下载完成判定失效的方案
方法1:使用qBittorrent Web API(最可靠)
- 先在qBittorrent设置中开启Web UI:进入「选项->Web UI」,勾选「启用Web UI」,设置端口、用户名和密码。
- 批处理脚本通过
curl调用API直接获取官方的种子完成状态,完全不受临时文件后缀干扰:@echo off set "QB_URL=http://localhost:8080/api/v2" set "QB_USER=你的用户名" set "QB_PASS=你的密码" set "TORRENT_DIR=目标种子子目录名称" :: 获取登录Cookie curl -s -c qb_cookie.txt -d "username=%QB_USER%&password=%QB_PASS%" "%QB_URL%/auth/login" :: 检查目标种子是否在已完成列表中 curl -s -b qb_cookie.txt "%QB_URL%/torrents/info?filter=completed" | findstr /C:"\"name\":\"%TORRENT_DIR%\"" >nul if not errorlevel 1 ( echo 下载完成 :: 在这里添加你的后续处理逻辑 ) else ( echo 未完成 ) :: 清理临时Cookie文件 del qb_cookie.txt
方法2:修改脚本过滤0字节的.!qB文件
- 新版qBittorrent中,被跳过的文件对应的
.!qB临时文件大小为0字节,正在下载的文件则会有非0的文件体积。 - 调整原脚本的判定逻辑,只检查是否存在非0字节的
.!qB文件:@echo off set "TARGET_DIR=C:\你的下载目录\种子子目录" set "ACTIVE_DOWNLOAD=0" :: 遍历所有.!qB临时文件 for %%f in ("%TARGET_DIR%\*.!qB") do ( :: 检查文件大小是否大于0 if %%~zf gtr 0 ( set "ACTIVE_DOWNLOAD=1" goto :finish_check ) ) :finish_check if %ACTIVE_DOWNLOAD% equ 0 ( echo 下载完成 :: 添加后续处理代码 ) else ( echo 正在下载中 )
方法3:调整qBittorrent设置禁用跳过文件占位符
- 打开qBittorrent设置进入「下载->保存管理」,勾选「不创建未选中文件的占位符」。
- 开启该选项后,被跳过的文件不会生成
.!qB临时文件,你的原脚本(检查目录中是否存在.!qB文件)即可恢复正常工作。 - 注意:该设置仅对新添加的种子生效,已存在的种子需重新勾选跳过项并强制刷新,或重新添加种子。
内容的提问来源于stack exchange,提问作者Bricktop
相关产品推荐
相关产品推荐

