首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >uTorrent批处理脚本

uTorrent批处理脚本
EN

Stack Overflow用户
提问于 2014-01-10 13:48:11
回答 2查看 7.6K关注 0票数 0

我根据我发现的另一个脚本写了一个脚本,我很难弄清楚为什么它不起作用。

它应该如何工作,一旦一个洪流已经完成下载,它运行脚本,并抓住标签上的洪流。为了测试,我下载了一首带有音乐标签的歌曲。当它到达:copyfile时,它将不会将其移动到正确的目录中。而不是移动到F:\完成的洪流\音乐,它只是移动到F:\完成的洪流。

有人能指出我错过了什么吗?因为我已经看了三遍了,这让我发疯了。剧本在下面。

代码语言:javascript
复制
@echo off
title Liam's torrent-file script
rem Parameter usage: fromdir torrent-name label kind [filename]
rem corresponds to uTorrents flags: %D %N %L %K %F 
echo *********************************************
echo Run on %date% at %time%

set fromdir=%1
set name=%2
set label=%3
set kind=%4
set filename=%5
set savepartition="F:\Completed Torrents"
set winrar="C:\Program Files (x86)\WinRAR\WinRAR.exe"
set torrentlog="F:\Torrent Scripts\logs\torrentlog.txt"
set handledlog="F:\Torrent Scripts\logs\handled_torrents.txt"
set errorlog="F:\Torrent Scripts\logs\ErrorLog.txt"
set label_prefix=""

echo Input: %fromdir% %name% %label% %kind% %filename%

rem Check if the label has a sub label by searching for \
if x%label:\=%==x%label% goto skipsublabel
rem Has a sub label so split into prefix and suffix so we can process properly later
echo sub label
for /f "tokens=1,2 delims=\ " %%a in ("%label%") do set label_prefix=%%a&set label_suffix=%%b
rem add the removed quote mark
set label_prefix=%label_prefix%"
set label_suffix="%label_suffix%
echo.prefix  : %label_prefix%
echo.suffix  : %label_suffix%
goto:startprocess

:skipsublabel
echo Skipped Sub Label
goto:startprocess

:startprocess
echo %date% at %time%: Handling %label% torrent %name% >> %handledlog%

rem Process the label
if %label%=="Movies" goto known
if %label%=="Music" goto known
if %label_prefix%=="TV" goto TV


rem Last resort
rem Double underscores so the folders are easier to spot (listed on top in explorer)
echo Last Resort
set todir=%savepartition%\Unsorted\__%name%
if %kind%=="single" goto copyfile
if %kind%=="multi" goto copyall
GOTO:EOF

:known
echo **Known Download Type - %label%
set todir=%savepartition%\%label%\%name%
echo todir = %todir%
GOTO:process

:TV
echo **Known Download Type - %label%
set todir=%savepartition%\%label_prefix%\%label_suffix%
echo todir = %todir%
GOTO:process

:process
rem If there are rar files in the folder, extract them.
rem If there are mkvs, copy them. Check for rars first in case there is a sample.mkv, then we want the rars
if %kind%=="single" goto copyfile
if exist %fromdir%\*.rar goto extractrar
if exist %fromdir%\*.mkv goto copymkvs
if %kind%=="multi" goto copyall
echo Guess we didnt find anything
GOTO:EOF

:copyall
echo **Type unidentified so copying all
echo Copy all contents of %fromdir% to %todir%
xcopy %fromdir%\*.* %todir% /S /I /Y
GOTO:EOF

:copyfile
rem Copies single file from fromdir to todir
echo Single file so just copying
echo Copy %filename% from %fromdir% to %todir%
xcopy %fromdir%\%filename% %todir%\ /S /Y
GOTO:EOF

:copymkvs
echo Copy all mkvs from %fromdir% and subdirs to %todir%
xcopy %fromdir%\*.mkv %todir% /S /I /Y
GOTO:EOF

:extractrar
echo Extracts all rars in %fromdir% to %todir%. 
rem Requires WinRar installed to c:\Program files
if not exist %todir% mkdir %todir%
IF EXIST %fromdir%\subs xcopy %fromdir%\subs %todir% /S /I /Y
IF EXIST %fromdir%\subtitles xcopy %fromdir%\subtitles %todir% /S /I /Y
call %winrar% x %fromdir%\*.rar *.* %todir% -IBCK  -ilog"%todir%\RarErrors.log"
IF EXIST %fromdir%\*.nfo xcopy %fromdir%\*.nfo %todir% /S /I /Y
GOTO:EOF

由于某种原因,编辑在第39行中也没有打印到日志。对于那些希望看到带有行号的代码的人:http://hastebin.com/juqokefoxa.dos

EN

回答 2

Stack Overflow用户

发布于 2015-03-16 07:03:12

给你几块:

1)很可能,您的脚本没有移动文件。“首选项/目录”有一个选项,可在完成后移动下载。验证这些设置没有执行文件移动。

2) uTorrent在完成时锁定文件,以便继续播种。若要更改此行为,请转到Preferences / Advanced并将bt.read_only_on_complete设置为false

3)你仍然会被挫败,因为“当急流结束时运行这个程序”并没有真正按照它说的去做。当下载达到100%时,它运行该程序,但是当uTorrent仍在移动文件或播种时。请看我的bug报告这里

文章的快速摘要,以防该帖子被删除:您必须在“当急流改变状态时运行此程序:”设置命令,添加%S参数并检查%S == 11

4)这仅仅是我尝试做一些非常类似的事情的一个提示:当您从参数中设置变量时,添加一个倾斜(%~1而不是%1)。这将去掉引号,让我们以后更容易地使用变量构建命令行。

票数 1
EN

Stack Overflow用户

发布于 2014-01-11 01:16:43

你说日志不会被写入。试试这个测试,看看它是否写入日志。

如果不这样做,还有其他一些根本性的问题。

代码语言:javascript
复制
@echo off
title Liam's torrent-file script
rem Parameter usage: fromdir torrent-name label kind [filename]
rem corresponds to uTorrents flags: %D %N %L %K %F 
echo *********************************************
echo Run on %date% at %time%

set "fromdir=%~1"
set "name=%~2"
set "label=%~3"
set "kind=%~4"
set "filename=%~5"
set "savepartition=F:\Completed Torrents"
set "winrar=C:\Program Files (x86)\WinRAR\WinRAR.exe"
set "torrentlog=F:\Torrent Scripts\logs\torrentlog.txt"
set "handledlog=F:\Torrent Scripts\logs\handled_torrents.txt"
set "errorlog=F:\Torrent Scripts\logs\ErrorLog.txt"
set "label_prefix="

set "handledlog=%userprofile%\desktop\handled_torrents.txt"

>> "%handledlog%" echo Input: "%fromdir%" "%name%" "%label%" "%kind%" "%filename%"
>> "%handledlog%" echo %date% at %time%: Handling "%label%" torrent "%name%"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21046009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档