使用 WinRAR 命令行 CLI 从 qbittorrent 自动提取 .rar 文件

使用 WinRAR 命令行 CLI 从 qbittorrent 自动提取 .rar 文件

在 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 只是将所有内容保留在后台。

相关内容