Hoşgeldin Misafir

VB Script - İndirilen TV Dizilerini Ayrı Klasörlere Taşımak

CemC

3 Eki 2021
668 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
VB Script - İndirilen TV Dizilerini Ayrı Klasörlere Taşımak-
Hafta sonları TV dizi izlemek isterseniz ve İnternet hızınız düşükse veya internet hızınız yüksek olduğu halde internetini ev haklı (aile) ve konu komşu ile paylaştığınız için hız sorunları yaşıyorsanız, dizinin en heyecanlı yerinde ekranın ortasında yanarlı dönerli imlecin çıkıp da sizi bekletmesi sinir bozucu bir durumdur. Bu durumdan kurtulmak için dizileri önceden indirip sonra izlemek tercih edilebilir.
Genellikle dosya isimlerinde dizi adının yanısıra sezon ve bölüm adı uzun uzun yazmaktadır. Aşırı titiz veya hastalık derecesinde takıntılı (OKB) sorunları yaşayan biriyseniz dosyaları ayrı klasörlere yerleştirmek ve hatta isimlerini olabildiğince kısaltmak isteyebilirsiniz.
Bunun için basit bir Visual Basic Scripti hazırladık. 
Örneğimizde farklı sitelerden indirilen bir dizi farklı dosya adlarında görülmektedir. Tabiri caiz ise dosya adı sadrazamın kılıcı gibi uzadıkça uzamıştır.
Ekran015.jpg

Visual Basic Scriptimizi çalıştırdığımızda, dizi adını alarak, aynı isimde bir klasör oluşturmaktadır.
Ekran016.jpg
-
Daha sonra bu klasörün içine dosya adlarını kısaltarak taşımaktadır. Örneğin Sezon numarasını başa yazarak arkasına nokta koymakta, noktadan sonra ise bölüm numarasını yazmaktadır.-
Ekran017.jpg
-

Başlangıçtaki uzun dosya adları kısaldıktan sonra aşağıdaki gibi görülmektedir. 
Ekran018.jpg
-

Klasörler aşağıdaki gibi görülmektedir.-
Ekran020.jpg
-

Başka bir dizinin klasör içi

Ekran021.jpg



Bunu hafta sonu birkaç bölüm dizilere bakarım diye hazırladım. Kullanmak isteyen başka konularda da scripti düzenleyip kullanabilir. Örneğin bir başka scriptim olan "FreeCourse.vbs" ise çeşitli konularda indirilen Udemy, Lynda vb sitelerin dosya adlarında yer alan "FreeCourse, Ahlan, Crackhacks" vb iafedeleri temizlemekle birlikte "Important" vb değişik warez site reklam ve bağış talebi dosyalarını, warez site link dosyalarını (url ve html uzantılı) otomatik siliyor. Ayrıca dosya veya klasör adlarındaki "****" "----" vb fazladan noktalama işaretlerini de temizliyor. Bir ara o scripti de paylaşırım.
Aslında Programlama konu başlığı altında Visual Basic Script konusu olsa iyi olurdu ya neyse ....-


tvDizisiAyriKaydet.vbs kaynak kodları-
' *****************************************************
' **    tvDizisiAyriKaydet.vbs                                                           **
' **                                    **
' **    İndirilen Dizileri Ayrı Ayrı Klasörlere açarak                            **
' **    Dizi adı ve sezon, bölüm, site sonu gibi kelimeleri kaldırır         **
' **                                    **
' **    CemC                             **
' *****************************************************
rem hata olursa takilmadan devam etmesi icin asagidaki satiri devre disi biraktim.
rem On Error Resume Next
Dim listExtention, listDelWord
Dim  folder, file,  fileName, absolutePath,  parentFolder, baseName, extensionName , newFolder, newName, ilkSayi, araSayi, i, newFile
rem listeye her bir film dosya uzantısını kucuk harfle ekleyin.
Set listExtention = CreateObject("System.Collections.ArrayList")
listExtention.Add "ts"
listExtention.Add "mov"
listExtention.Add "avi"
listExtention.Add "divx"
listExtention.Add "mp4"
listExtention.Add "mkv"
listExtention.Add "jpg"
listExtention.Add "jpeg"
listExtention.Add "png"

rem Dosya adından silinecek kelimelerin listesi
Set listDelWord = CreateObject("System.Collections.ArrayList")
listDelWord.Add "Turkish"
listDelWord.Add "Türkçe"
listDelWord.Add "Dublaj"
listDelWord.Add "SubTitle"
listDelWord.Add "Sezon"
listDelWord.Add "Bölüm"
listDelWord.Add "Dizilerim"
listDelWord.Add "filmmodu.org"
listDelWord.Add "filmbizde"
listDelWord.Add "filmizlesene"
listDelWord.Add "izlebeni"
listDelWord.Add "dizici"
listDelWord.Add "DiziMOM"
listDelWord.Add "Dizi"
listDelWord.Add "izle"
listDelWord.Add "-"
listDelWord.Add " "
listDelWord.Add "_"

Set fs = CreateObject("Scripting.FileSystemObject")
Set folder = fs.GetFolder(".")
For Each file in folder.Files
   absolutePath = fs.GetAbsolutePathName(file)
   parentFolder = fs.GetParentFolderName(file)
   fileName = fs.GetFileName(file)
   baseName = fs.GetBaseName(file)
   extentionName=LCase(fs.GetExtensionName(file))
   if (listExtention.IndexOf(extentionName,0)> -1 ) then
        newFolder = ""
        ilkSayi = 999
        for i = 0 to 9
    rem **  araSayi icin 6'dan baslatmamin nedeni, 9 1 1 dizisini gibi **
    rem **  sayi ile baslayan isimleri yanlislikla sezon ismi gormesin diye **
    araSayi = InStr(6,baseName,CStr(i))  
    if (araSayi>0 and araSayi<ilkSayi) then ilkSayi=araSayi
        next  
       if  (ilkSayi<999) then
    newName = Trim(left(baseName,ilkSayi-1))
             if (newName<>"") then
        newfolder = parentFolder & "\" & newName & "\"
        if  not fs.FolderExists(newFolder) then fs.CreateFolder(newFolder)
    end if
       end if
       if (newFolder<>"") then
    newFile = Trim(Replace(fileName, newName, ""))
    for i=0 to listDelWord.Count-1
        newFile=Trim(Replace(newFile,listDelWord.Item(i),""))
    next
    rem yan yana iki noktayi tek nokta yap
                  newFile = Trim(Replace(newFile,"..","."))
    rem dosya adina yolu ekle
                  newFile = newFolder &  newFile
                  file.Move newFile
       end if
   end if
Next
-