作者kslman ()
看板EzHotKey
标题[AHK-] 大量BT种子批量下载并改档名脚本
时间Sun Feb 28 11:23:33 2016
想看有断行比较清楚或部分上色的程式码可参阅网志好读版:
http://kslman.blogspot.tw/2016/02/autohotkeybt.html
------------------------以下正文开始------------------------
这个脚本主要是为了用来解决我常有大量种子下载需求。
因为在下载种子的时候,通常我就会把我想要存成的档名或资料夹名称直接改为种子名称
。但是当有几十个种子要下载的时候,我必须重复这样的动作:
1. 按F2。
2. Ctrl+C复制种子档名。
3. Enter开启种子。
4. 检视这是单一档案或是一个资料夹。如果是资料夹的话直接贴上名称,但如果是单一
档案就只贴上名称到副档名前,所以如果是手动的话这时候会比较麻烦。因为只有单一档
案这样的种子它的路径可能会是「C:\Download\XXXX123.avi」,就算你的设定是隐藏副
档名,你直接贴上,它下载下来的档案会变成没有副档名「XXXX123」这样的档案。
5. 选择想要保留的档案(因为有时候种子里会有很多垃圾档)按Enter。
6. 回到放种子的资料夹选下一个档案,继续上述动作。
其他地方的自动化都还蛮好处理的,但其中最麻烦的部分是第4点,这里用到了判断字串
、计算字串长度以及修改字串的技巧。
另外一个比较麻烦的是第6点,这里需注意到SetTitleMatchMode的值,因为需要用到包和
或用更多条件精准判断视窗名称的技巧。另一个是Gosub所在位置,因为很假掰的用了
else,结果一开始一直不知道为什麽「Gosub, avmove」没有办法被启用,结果是因为放
的位置错了。(我原本放到avcopy最後的return之前)
所以前前後後可能研究了好几个小时吧,现在只剩不知道怎麽写如何选择想要保留的档案
。(如果大概知道怎麽做得大大也可以分享一下大概可以怎麽做)
但目前的做法已经解决大部分问题,还是蛮有成就感的,来分享一下作法,大家以後如果
碰到类似问题可参考。
------------------------以下是脚本------------------------
F8:: ;A片种子自动贴档名:启动
Gosub, avcopy
return
avmove: ;A片种子自动化:确认并移动到下一个种子
SetTitleMatchMode, 2 ;SetTitleMatchMode包含模式
WinWait, 增加新的Torrent ahk_class #32770
sleep, 100
WinWaitClose, 增加新的Torrent ahk_class #32770
sleep, 100
SetTitleMatchMode, 3 ;SetTitleMatchMode准确匹配模式
WinWait, Torrent ahk_class CabinetWClass,
IfWinNotActive, Torrent ahk_class CabinetWClass, , WinActivate, Torrent
ahk_class CabinetWClass,
WinWaitActive, Torrent ahk_class CabinetWClass,
Sleep, 100
Send, {Down}
Gosub, avcopy
return
avcopy: ;A片种子自动贴档名(查字串中是否有副档名判断为单独档案或是资料夹)
Send, {F2} ;编辑档名
sleep, 500
Send, ^{C} ;复制档名
filename = %clipboard%
Send, {Enter}{Enter} ;开启种子
sleep, 888
Send, ^{A} ;全选路径
sleep, 300
Send, ^{C} ;复制路径
sleep, 300
if clipboard contains .wmv,.mp4,.avi,.mkv,.rmvb,.rm ;如果完整路径中包含所列副
档名,则判定为只有单一档案
{
StringGetPos, pos, clipboard, ., R ;从最右边开始搜寻点的位置
StringLen, length, clipboard ;计算字串长度
npos := length-pos ;长度减掉位置
StringRight, fileextension, clipboard, npos ; 把clipboard中名称去掉档名丢到
变数fileextension
clipboard = %filename%%fileextension% ;把档名加上副档名後丢到剪贴簿
sleep, 300
Send, ^{V} ;贴上种子档名&副档名内容
Gosub, avmove
return
}
else
{
clipboard = %filename%
sleep, 300
Send, ^{V} ;贴上种子名称
Gosub, avmove
return
}
return
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.187.83.105
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/EzHotKey/M.1456629818.A.6D7.html
补上条列数字
※ 编辑: kslman (218.187.83.105), 02/28/2016 11:24:56