Geçenlerde küçük bir .vbs scripti oluşturuyordum ve bu script Chromenin şifrelerini favorilerini vs. yi masaüstüne bir klasör oluşturup içine yedekleyecekti gel gelelim aynı klasörün içinde birde
tüm yedeği geri alma scripti olması gerekiyordu lakin kesinlikle .exe kullanmak istemediğimden .vbs ile klasör içinde yedeği geri alma scriptinin oluşturulması gerekiyordu benzeri bir durumda sizinde vbs oluşturan bir vbs ye ihtiyacınız olabilir bu işlem zor olmamasına rağmen tırnak işaretlerine dikkat etmeyi gerektirmektedir mesela aşağıdaki script tıklandığında bize Windows version numarasını verir
Dim objWMIService Dim colItems Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")'Dot is local computer Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL") For Each objItem In colItems MsgBox ""& objItem.Caption & vbNewLine & ""& objItem.version & vbNewLine Next
Biz üstteki kodları bir .vbs scriptinde tanımlamalı ve tıkladığımızda üstteki scripti oluşturtmalıyız , burada kural Tırnak sayısının x 2 kadar arttırılmasıdır (En azından benim kuralım) , aşağıdaki scriptte "vbs kodu gelecek" kısımlarına üstteki kodun her bir satırı gelecek yani yazdırmak istediğimiz her bir .vbs satırı için objFile.WriteLine "" kullandık
Set objFSO=CreateObject("Scripting.FileSystemObject") outFile="version.vbs" Set objFile = objFSO.CreateTextFile(outFile,True) objFile.WriteLine "vbs kodu gelecek" objFile.WriteLine "vbs kodu gelecek" objFile.WriteLine "vbs kodu gelecek" objFile.WriteLine "vbs kodu gelecek" objFile.WriteLine "vbs kodu gelecek" objFile.WriteLine "vbs kodu gelecek" objFile.WriteLine "vbs kodu gelecek" objFile.Close
Scripti düzenleyecek olursak ilk başta verdiğimiz .vbs scripti oluşturacak .vbs scripti şu şekilde olacaktır
Set objFSO=CreateObject("Scripting.FileSystemObject") outFile="version.vbs" Set objFile = objFSO.CreateTextFile(outFile,True) objFile.WriteLine "Dim objWMIService" objFile.WriteLine "Dim colItems" objFile.WriteLine "Set objWMIService = GetObject(""winmgmts:\\.\root\CIMV2"")'Dot is local computer" objFile.WriteLine "Set colItems = objWMIService.ExecQuery(""SELECT * FROM Win32_OperatingSystem"", ""WQL"")" objFile.WriteLine "For Each objItem In colItems" objFile.WriteLine "MsgBox """"& objItem.Caption & vbNewLine & """"& objItem.version & vbNewLine" objFile.WriteLine "Next" objFile.Close
Üstteki koda "vbs_olustur" ismini verdim ve çalıştırdığımda bana "version.vbs" isminde başka bir visual basic script oluşturuyor ve içerisinde ilk verdiğim kodlar yeralıyor böylece de bir .vbs ile diğer bir .vbs oluşturmuş oluyoruz , version.vbs yi oluşturup çalıştırsın isteseydik üstteki scriptin sonuna aşağıdakini ilave edecektik
Set wshShell = WScript.CreateObject("WSCript.shell") wshshell.run "version.vbs" set wshshell = nothing
Üstte kullandığımız scriptlerin hazır hallerini aşağıdaki linkten indirebilirsiniz