[AHK-] 大量BT種子批量下載並改檔名腳本

看板EzHotKey作者時間9年前 (2016/02/28 11:23), 9年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
想看有斷行比較清楚或部分上色的程式碼可參閱網誌好讀版: 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://www.ptt.cc/bbs/EzHotKey/M.1456629818.A.6D7.html 補上條列數字 ※ 編輯: kslman (218.187.83.105), 02/28/2016 11:24:56
文章代碼(AID): #1MqcWwRN (EzHotKey)
文章代碼(AID): #1MqcWwRN (EzHotKey)