Vbs de boşluk içeren parametrelerle çalışmak


Vbs de boşluk içeren parametre
Visual basic scriptler ile çalışırken sıkça karşılaşılan sorunlardan biride kullanılan parametrelerden bir veya birkaçının boşluk içermesidir , mesela masaüstümüzde isminde boşluk olan bir klasör oluşturalım

"Yeni klasör" bu klasörün içerisinde de çağrıldığında sordum.net yazdıran tek satırlık bir kod yazalım , amacımız masaüstümüzde yeralan ve isminde boşluk olan bu klasörü yine masaüstümüzde oluşturduğumuz "Run.vbs" isimli bir script ile çağırmak (çalıştırmak)

Vbs de boşluk içeren parametre

yani ; run.vbs (1) çalıştırıldığında "Yeni Klasör" (2) içerisindeki sordum.vbs (3) ü çalıştırmaktadır, eğer klasör isminde boşluk olmasa aşağıdaki kodla bunu yapabilirdik

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "C:\Users\velociraptor\Desktop\Yeni\sordum.vbs",0 ,true
Set oShell = Nothing

Lakin "Yeni Klasör" isminde boşluk olduğu için üstteki kodu verildiği şekli ile kullanırsak aşağıdaki hatayı alırız.

belirtilen dosya bulunamıyor

Peki ama ilk kodu nasıl düzenleyelimki klasör ismindeki bu boşluğu da görebilsin , gelin isterseniz kuralları bir hatırlayalım:

1. WScript.Echo "sordum.net" - sordum.net olarak çıktı verir.

2. WScript.Echo "Tek tırnak "" sordum.net" - Tek tırnak"sordum.net olarak çıktı verir
Üsttekinin anlamı : Eğer başında ve sonunda tırnak işareti olsun istiyorsak hem başında hemde sonunda çift tırnak kullanmalıyız.

3. WScript.Echo """sordum.net""" - "sordum.net" şeklinde görüntülenecektir.
Peki ama bir parametre içerisinde birden fazla tırnak işareti kullanmamız gerekiyorsa ne yaparız ? elbette üstteki şekilde üçerli tırnak işaretleri kullanılabilir fakat karışıklık ihtimalide artacaktır o nedenle gelin bir fonksiyon yazalım ve bizim için tırnak sayısını bu fonksiyon ayarlasın

Function qq(strIn) 
    qq = Chr(34) & strIn & Chr(34) 
End Function 
WScript.Echo qq("sordum.net") 

Üstteki script kullanıldığında - "sordum.net" şeklinde bir çıktı verecektir.

İlk örneğimize geri dönecek olursak tüm bu bilgiler ışığında masaüstümüzde yeralan "Yeni klasör" içerisindeki "sordum.vbs" yi çalıştırmak için üç farklı script kodlaması yapabiliriz.

1. Tırnak işaretleri ile

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run """C:\Users\velociraptor\Desktop\Yeni klasör\sordum.vbs""",0 ,true
Set oShell = Nothing

2. Chr(34) ile

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run Chr(34) & "C:\Users\velociraptor\Desktop\Yeni klasör\sordum.vbs"& Chr(34) ,0 ,true
Set oShell = Nothing

3. fonksiyon ile

Function qq(strIn) 
    qq = Chr(34) & strIn & Chr(34) 
End Function 

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run qq("C:\Users\velociraptor\Desktop\Yeni klasör\sordum.vbs") ,0 ,true
Set oShell = Nothing

ve bunlardan her biri çalıştırıldığında isminde boşluk olan Yeni klasör içerisindeki "sordum.vbs" sorunsuz bir şekilde çalışacak ve aşağıdaki şekilde çıktı verecektir.

Boşluk içeren klasör engeli aşıldı

Üstteki örnekleri içeren tüm vbs scriptlerini aşağıdaki indirme linkinden indirip kendi masaüstünüzde deneyebilirsiniz.

- Parametre hatalı sorunu ve çözümü Burada

- Görev zamanlayıcısı ile onaysız registry kaydı çalıştırın Burada

30 Nisan 2017 Tarihli başlık güncellendi.


4 Yorum Var
  1. Avatar for Velociraptor
  2. Avatar for Enver Sarıca
  3. Avatar for Velociraptor
  4. Avatar for Ferit

Yorum Ekle

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

Captcha