VBscript ile isminin sadece birkısmı bilinen klasöre erişim


isminin sadece birkısmı bilinen klasöre erişim
Bazen kodladığınız bir scriptte işlem yaptırmak istediğiniz klasör ismi her kullanıcıda farklı isimler alıyor olabilir mesela buna en güzel örnek Firefox Profil klasörüdür. Kurulum sırasında başında rastgele

harflerden oluşan bir harf dizisi ardından bir noktalama işareti ve sonrasında "default-release" takısı alır , mesela "29wvvv29.default-release" varsayalım yazacağınız script bu klasör içerisindeki dosyalardan birinde değişiklik yapacak yada direkt olarak bu varsayılan Profil klasörünü açtırtacak. Buradaki en büyük sorun default-release sonekinin öncesinde rastgele oluşturulan harflerdir. Bu konuda , sadece uzantısı bilinen bir klasörü script ile açalım başlığımızda bir bat scripti ile işlem yaptırmıştık , bu yazımızda benzerini Vbscript ile uygulamaya çalışacağız.

Tam ismi bilinmeyen klasörde işlem

Aşağıdaki kodlar Çalıştır kutucuğundan uygulandığında Firefox Profil klasörü açılacaktır.

%APPDATA%\Mozilla\Firefox\Profiles\ 

Görüldüğü gibi burada iki farklı klasör bulunmasına rağmen bizi ilgilendireni , sonunda default-release yazanıdır.

Firefox varsayılan Profil klasörü

Peki nasıl bir kodlama kullanalım ki Profil klasörünün içerisinde yeralan iki klasörden sonundaki 15 kelimesi default-release olan klasörü açtırtalım. Ben aşağıdaki gibi bir kodlama tercih ettim.

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oWshShell = WScript.CreateObject("WScript.Shell")
sTempFolder = oWshShell.ExpandEnvironmentStrings("%APPDATA%\Mozilla\Firefox\Profiles\")
Set oTempFolder = oFSO.GetFolder(sTempFolder)

For Each oFolder In oTempFolder.SubFolders
    If Right(LCase(oFolder.Name), 15) = "default-release" Then 
Set Sh = CreateObject("WSCript.Shell")
Sh.Run  oFolder.Path
Set Sh = Nothing
End if
Next

Üstteki kodların açıklamasına gelirsek ; öncelikle işlem yaptırtacağımız klasörü , sTempFolder ile tanımladık
sTempFolder = oWshShell.ExpandEnvironmentStrings("%APPDATA%\Mozilla\Firefox\Profiles\")
ardından Tanımlı klasörün içerisinde yeralan Alt klasörlerden isminin sonundaki 15 harfi default-release olanı aç komutunu kullandık bunu yaparken aşağıdaki kod satırını kullandık.
If Right(LCase(oFolder.Name), 15) = "default-release" Then
Anlamı ; eğer alt klasörlerden birinin sağdan 15 kelimesi "default-release" ise O klasörü aç
Sh.Run oFolder.Path
Örnekte uygun olduğu için Firefox varsayılan profil klasörü ele alınmış olsada benzeri şekilde isminin belirli kısmında rastgele harf veya rakamlar bulunan diğer windows klasörlerinde de rahatlıkla kullanılabilecek bir kod bloğudur. Üstteki kodlar ile oluşturulan Vbscript kullanıldığında her kullanıcıda farklı olan default-release klasörü açılacaktır.

Vbscript ile Firefox varsayılan klasörünü açtırt

Eğer kodların her Windows kullanıcısında çalışmasını istemiyor olsaydık bu durumda zaten gider varsayılan profil klasör ismini aşağıdaki kodlarda kullanırdık.

Dim objShell
Set WshShell = WScript.CreateObject("Wscript.Shell")
vAPPDATA = WshShell.ExpandEnvironmentStrings("%APPDATA%\Mozilla\Firefox\Profiles\29wvvv29.default-release") 
WshShell.Run(vAPPDATA)
Set WshShell = Nothing

Lakin bu durumda sadece varsayılan profil klasörü "29wvvv29.default-release" isminde olan firefox kullanıcılarında çalışacaktı , ki aynı isimde klasörlerin olması olasılığı imkansız olduğundan sadece bir kişide çalışacaktı. İlgili kod örneklerini aşağıdaki indirme linkinde bulabilirsiniz.

- Sadece uzantısı bilinen bir klasörü script ile açalım Burada

- Sadece uzantısı bilinen bir klasörü script ile açalım Burada


4 Yorum Var
  1. Avatar for Velociraptor
  2. Avatar for Kadir
  3. Avatar for Velociraptor
  4. Avatar for Hakkı

Yorum Ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Captcha