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.
Visual Basic Scriptimizi çalıştırdığımızda, dizi adını alarak, aynı isimde bir klasör oluşturmaktadır.
-
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.-
-
Başlangıçtaki uzun dosya adları kısaldıktan sonra aşağıdaki gibi görülmektedir.
-
Klasörler aşağıdaki gibi görülmektedir.-
-
Başka bir dizinin klasör içi
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
-
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.
Visual Basic Scriptimizi çalıştırdığımızda, dizi adını alarak, aynı isimde bir klasör oluşturmaktadır.
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.-
Başlangıçtaki uzun dosya adları kısaldıktan sonra aşağıdaki gibi görülmektedir.
Klasörler aşağıdaki gibi görülmektedir.-
Başka bir dizinin klasör içi
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
-

