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


Vbs de boşluk içeren parametrelerle çalışmak
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 parametrede boşluk

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ılş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

vbs sordum çıktı

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

Download


2 Yorum Var

Yorum Ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Captcha