Çevre değişkenleri (Environment variables),Bilgisayardaki dinamik objelerdir ve mesela Ortam değişkenleri, programların dosyaları hangi dizine yükleyeceğini, geçici dosyaları nerede depolayacağını
%appdata% %commonprogramfiles% %local% %localappdata% %programfiles% %temp% %userprofile%
Diyelimki siz bir script/program yardımı ile aşağıdaki dizinde işlem yapacaksınız:
C:\Users\velociraptor\AppData\Roaming
Üstte kullanıcı adı olarak velociraptor geçiyor yani scripte yol olarak üsttekini kullanamayız çünkü bir başkasının bilgisayarında kullanıcı adı farklıdır , işte bu gibi durumlar için %appdata% değişkeni kullanılır , yani klavyedeki Windows ve R tuşlarına birlikte basıp açılan çalıştır boşluğuna %appdata% yazıp enter e basıldığında her bilgisayarda bir üstteki yer açılacaktır ve fakat kullanıcı adı komutun kullanıldığı bilgisayara göre değişecektir.
İşte .bat scriptlerinde bolca kullanılan bu değişkenlerin .vbs de kullanımı ile ilgili birkaç örnek vereceğiz işlem yapacağımız dizin aşağıdadır:
C:\Users\velociraptor\AppData\Roaming\Mozilla\Firefox\Profiles
Bu üstteki dizine bir dosya , bir klasör kopyalayıp sileceğiz ve birde dizini direkt olarak açan bir script kullanacağız , aşağıdaki .vbs scriptleri bulundukları klasörde yeralan "oku.txt" dosyasını ve "deneme" isimli klasörü üstteki yola kopyalayacak ve sileceklerdir , sizde bir klasör içerisinde bunları oluşturup sırası ile aynı yerde oluşturacağınız aşağıdaki .vbs scriptlerini deneyebilirsiniz.
1.vbs de Çevre değişkeni kullanarak dosya kopyalama
' Edited by Velociraptor ' www.sordum.net Option Explicit Dim oFSO, strAppData, objShell Set objShell = CreateObject("WScript.Shell") Set oFSO = CreateObject("Scripting.FileSystemObject") objShell.CurrentDirectory = oFSO.GetParentFolderName(WScript.ScriptFullName) strAppData=objShell.ExpandEnvironmentStrings("%APPDATA%\Mozilla\Firefox\Profiles\") & "\" oFSO.CopyFile "oku.txt", strAppData, True Set objShell = Nothing Set oFSO = Nothing
2.vbs de Çevre değişkeni kullanarak dosya Silme
' Edited by Velociraptor ' www.sordum.net Dim objFSO, copyFile, vSystemDrive Set WshShell = WScript.CreateObject("Wscript.Shell") vAPPDATA = WshShell.ExpandEnvironmentStrings("%APPDATA%\Mozilla\Firefox\Profiles\") Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFile(vAPPDATA & "\oku.txt")
Şu aşağıdaki iki satır ile çevre değişkenlerini tanımlıyoruz.
Set WshShell = WScript.CreateObject("Wscript.Shell") vAPPDATA = WshShell.ExpandEnvironmentStrings("%APPDATA%\Mozilla\Firefox\Profiles\")
Bu üstteki tanımlamadan sonra Kodlama içerisinde vAPPDATA kullanıldığında direkt olarak tanımladığımız "%APPDATA%\Mozilla\Firefox\Profiles\" parametresi devreye girecektir.
3.vbs de Çevre değişkeni kullanarak Klasör kopyalama
' Edited by Velociraptor ' www.sordum.net Option Explicit Dim oFSO, strAppData, objShell Set objShell = CreateObject("WScript.Shell") Set oFSO = CreateObject("Scripting.FileSystemObject") objShell.CurrentDirectory = oFSO.GetParentFolderName(WScript.ScriptFullName) strAppData=objShell.ExpandEnvironmentStrings("%APPDATA%\Mozilla\Firefox\Profiles\") & "\" oFSO.CopyFolder "deneme", strAppData, True Set objShell = Nothing Set oFSO = Nothing
4.vbs de Çevre değişkeni kullanarak Klasör Silme
' Edited by Velociraptor ' www.sordum.net Dim objFSO, copyFile, vSystemDrive Set WshShell = WScript.CreateObject("Wscript.Shell") vAPPDATA = WshShell.ExpandEnvironmentStrings("%APPDATA%\Mozilla\Firefox\Profiles\") Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFolder(vAPPDATA & "\deneme")
5.vbs de Çevre değişkeni dizinini açalım
' Edited by Velociraptor ' www.sordum.net Option Explicit Dim objWShell Set objWShell = WScript.CreateObject("WScript.Shell") Dim appData appData = objWShell.expandEnvironmentStrings("%APPDATA%") CreateObject("WScript.Shell").Run "%APPDATA%\Mozilla\Firefox\Profiles\"
Böylece en önemli çevre değişkenlerinden birinin .vbs içinde kullanımını görmüş olduk. Üstteki tüm dosyaları ve bir adet bonusu Aşağıdaki linkten indirebilirsiniz. Eğer Powershell de Çevre değişkeni kullanımı ile ilgili bilgi almak istiyorsanız Buradaki başlığımıza gözatabilirsiniz.
- Sağ tuşa vbs veya bat scripti eklemek Burada
- Kullanıcıya seçenek sunan .bat scripti Burada
- Bat dosyasında mevcut dizin işlemleri Burada
- Bat dosyası ile diskpart komutlarını sıralı uygulatmak Burada
- vbs ile Windows version numarasını bulalım Burada
- Script ile bir işlemi (Process) sonlandıralım Burada
14 Ağustos 2014 Tarihli başlık güncellendi
Hocam çok pardon ya...
Direkt indirip çalıştırdım, dosya üzerindeki exe dosyasının ismini değiştirmeyi unutmuşum...
Bu sefere vallahi billahi çalıştı... 🙂
Çok çok teşekkürler...
Hocam bende vallahi billahi çalışmıyor 🙂
Bu arada ilginiz için teşekkürler...
Web Link ...
Cacheni temizleyip Verdiğim linkten birdaha indir bakalım , bu sefer direkt VBs yi attım
Hocam tabiki exe nin yanıda çalıştırıyorum, benim amacım o zaten...
Ben Windows 10 kullanıyorum, kullandığınız işletim sistemi nedir?
Malum her vbscipt tüm işletim sistemlerinde aynı şekilde çalışmıyor...
Exe nin yanından çalıştıracaksın , ben o kodu 3 farklı exe nin yanında çalıştırdım hepsinde exe dosyası çalıştı. Kısacası sendeki sorun başka olmalı
"Sistem belirtilen dosyayı bulamıyor"
Kod: 8007002
diyor malesef... 🙁
İşleri karmaşıklaştırmışsın oysa gerek yok , aşağıdaki kodları bir dene
Web Link ...
Üstat son durum resimde görüldüğü gibi...
Web Link ...
Ben QemuBoot.exe dosyasını çalıştırmak istiyorum, ancak nedense vb scripti resimde de görüldüğü üzere exe dosyasını exec e çeviriyor...
Melesef Vbs de durum biraz farklı
Gerçi bu son deneme de bir şekilde yol belirtmiş oluyoruz 🙂
CMD'de bu iş çok kolay, cmd dosyasına exe dosyasının edını yaz, exe nin yanında çalıştır bitti...
Keşke vbs'de de bu kadar kolay olsa 🙂
Üstat bir sürü denemeler oluşturdum, hepsinde bir şekide hata veriyordu, nihayet hata vermeyen bir komut dizesi oluşturabildim ancak bu seferde yapması gereken işi yapmıyor, yani exe çalışmıyor 🙂
Buraya da yazıyorum ki, belki fikir paylaşımı ile bir çözüm bulabiliriz 🙂
Hata vermeyen ancak exe dosyasını da çalıştırmayan vbs komut dizisi:
Set wshNetwork = CreateObject("WScript.Network")
strUser = wshNetwork.Username
commandLine = "C:\Users\" & strUser & "\Desktop\QemuBoot.exe"
öncesinde sCurPath ı tanımlaman gerekiyor kodu eksin almışsın, aşağıdaki de gerekli
sCurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")