Pazar, Eylül 11, 2005

Su vbscript gusel bir sey

Unix/Linux uzerinde calisirken perl kullaniyorum ama Windows'a gelince vbscript kullanmayi seviyorum. Biraz once indirdigim bir Audiobookun bolumleri asagidaki gibi dizilmis
Disk 1 - > 01.Track.mp3, 02.Track.mp3
Disk 2 - > 01.Track.mp3, 02.Track.mp3, 03.Trackmp3
Disk 3 - > 01.Track.mp3, 02.Track.mp3

Bunlarin hepsini bir dizine toplayayim istedim ama once isimlerini asagidaki gibi degistirmem gerekti:
Disk 1 - 01.Track.mp3, 02.Track.mp3
Disk 2 - 03.Track.mp3, 04.Track.mp3, 05.Track.mp3
Disk 3 - 06.Track.mp3, 07.Track.mp3

Elimde Filmleri kategorize etmek icin kullandigim Ant Movie Catalog'u yazan Belcika'li arkadasin (Antoine Potten) Ant Renamer adli programi var ama o da direkt istedigimi yapmiyordu. Google'da bir iki dakika harcayip aradigim gibi bir sey goremeyince , asagidaki kodu yazdim:

set oFSO=CreateObject("Scripting.FileSystemObject")
set oFolder=oFSO.GetFolder(".")

sKullanim = "Kullanim: cscript rename.vbs EklenecekSayi" & vbCrLf

If ((Wscript.Arguments.Count = 0) or (Not IsNumeric(iEkle))) Then
Wscript.Echo (sKullanim)
Wscript.Quit
End If
Dim iEkle
iEkle = CInt(Wscript.Arguments(0))


For Each oFile in oFolder.Files
sFile=oFile.name
sIlkIki=Left(sFile,2)
sGerisi=Mid(sFile,3)
If IsNumeric(sIlkIki) Then
sIlkIki = sIlkIki + iEkle
sYeniIsim = sIlkIki & sGerisi
Wscript.Echo (sFile & "-->" & sYeniIsim)
oFile.Move (sYeniIsim)
End If
Next



Sonuc tam istedigim gibi:
C:\Disk 9>cscript rename.vbs 159
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

01. Track 1.mp3-->160. Track 1.mp3
02. Track 2.mp3-->161. Track 2.mp3
03. Track 3.mp3-->162. Track 3.mp3
04. Track 4.mp3-->163. Track 4.mp3
05. Track 5.mp3-->164. Track 5.mp3
06. Track 6.mp3-->165. Track 6.mp3
07. Track 7.mp3-->166. Track 7.mp3
08. Track 8.mp3-->167. Track 8.mp3
09. Track 9.mp3-->168. Track 9.mp3
10. Track 10.mp3-->169. Track 10.mp3

[EK Bilgi]
Bugun Antoine ile konusurken, yukaridaki olayi anlattim. O da bir kerede degil ama once 'Enumaration' bolumunden istedigim sayilari dosyanin onune ekleyip, sonra character deletion bolumunu kullanarak dosyalari istedigim hale getirmemin mumkun olabilecegini anlatti. Dedim ya gusel program.

Hiç yorum yok: