在 qbittorrent 上完成 torrent 下载后,我通过选项菜单执行一个外部程序:
Tools -> Options -> Downloads --> Run external program on torrent completion
"C:\Program Files\WinRAR\AutoUnRAR.bat" "%F\*.rar" "E:\Downloads\"
在我创建的名为 AutoUnRAR.bat 的文件中,有以下代码:
@ECHO off
timeout /t 10 /nobreak
set arg1=%1
set arg2=%2
shift
shift
START "" "C:\Program Files\WinRAR\WinRAR.exe" x "%arg1%" "%arg2"
超时是必须的,因为当我直接从 qbittorrent 调用它并执行时:
"C:\Program Files\WinRAR\WinRAR.exe" x "%F\*.rar" "E:\Downloads\"
该文件被标记为仍在使用中(WinRAR 命令 -dh 不起作用),并且 WinRAR 给出错误“该进程无法访问该文件,因为它正在被另一个进程使用。”
下载完成后,10 秒倒计时结束,WinRAR 出现错误
fileDIRECTORY\file.rar: No files to extract
检查文件夹后,文件确实存在,可以手动提取,但由于某种原因无法提取 .rar 文件。在这种情况下,恰好有很多部分,.r00 .r01 ... 以及一个只有 .rar 的文件。我只针对 .rar 文件,但当您单独提取任何部分时,WinRAR 都没有问题。
答案1
WinRAR 给出错误“fileDIRECTORY\file.rar:没有要提取的文件”
START "" "C:\Program Files\WinRAR\WinRAR.exe" x "%arg1%" "%arg2"
上述命令有错误,"%arg2"
应该是"%arg2%
(缺少%
)。
因此命令应该是:
START "" "C:\Program Files\WinRAR\WinRAR.exe" x "%arg1%" "%arg2%"
答案2
您不需要使用 .bat 来设置超时。您可以在 qBittorent 的“运行外部程序...”字段中使用它。
cmd /c timeout /t 15 & "C:\Program Files\WinRAR\UnRAR.exe" x "%F\*.rar" "%F"
注意:如果您需要测试此命令,您可以在 Windows 上的“运行”框中尝试它。
注 2:您可能仍可以使用 WinRAR.exe。UnRAR 只是将所有内容保留在后台。