.vbs de mevcut dizinden işlem yapmak


vbs ile mevcut dizinden kopyalama
Daha önceki konularımızda .vbs ile nasıl kopyalama yapılacağına dair script örnekleri paylaşmıştık Burada gel gelelim eğer kopyalanacak dosyanın yolunu bellirtmezssek hata verecektir

gelin bunu bir örnek yardımı ile görelim ;
1. Masaüstümde "deneme" isimli bir klasör oluşturdum
2. İçerisine de "a.txt" isimli bir dosya kopyaladım
3. bu "a.txt" isimli dosyayı "C:\" dizinime kopyalamak istiyorum

Üstteki linkte verdiğimiz örneği kullanırsak

Const OverwriteExisting = TRUE
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "a.txt", "C:\" , OverwriteExisting
Set FSO = nothing

Alacağımız sonuç aşağıdaki şekilde olacaktır

dosya bulunamadi

Görüldüğü gibi Dosya bulunamadı hatasını alırız , pekala bizde tam yol belirtelim , "a.txt" dosyasını sağ tıklayalım ve özelliklerden yolu bulalım aşağıdakini gösteriyor

C:\Users\velociraptor\Desktop\deneme\a.txt

Şimdi Kodu bu yola göre düzenlersek aşağıdaki şekli alacaktır

Const OverwriteExisting = TRUE
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "C:\Users\velociraptor\Desktop\deneme\a.txt", "C:\" , OverwriteExisting
Set FSO = nothing

Busefer hatasız kopyaladı , iyide bir başkasının bilgisayarında kullanıcı ismi farklı olacağından tekrar kodu düzenlemesi gerekir , bundan kaçınmak için Buradaki yöntemden bahsetmiştik eğer mevcut dizini otomatik bulan yöntemlerden birini kullanırsak Böylece script hem editlenme gereği olmadan herkesin bilgisayarında çalışacak hemde hata vermeyecektir. Scripti aşağıdaki şekilde düzenliyoruz

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim strScriptPath : strScriptPath = Replace(WScript.ScriptFullName, "\" & WScript.ScriptName, "") 
FSO.CopyFile strScriptPath& "\a.txt", "C:\"
Set FSO = nothing

Üstteki kod UAC si açık olan bilgisyarlarda c:\ dizinine yazamayacak ve aşağıdaki hatayı verecektir

vbs izin verilmedi

Bu hatayı da bertaraf edip her sistemde sorunsuz çalışmasını sağlamak için kodu aşağıdaki şekle getiriyoruz

'created by Velociraptor (www.sordum.net) 17.03.2015
If WScript.Arguments.length =0 Then
  Set objShell = CreateObject("Shell.Application")
 
  objShell.ShellExecute "wscript.exe", Chr(34) & _
  WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else
'--------------
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim strScriptPath : strScriptPath = Replace(WScript.ScriptFullName, "\" & WScript.ScriptName, "") 
FSO.CopyFile strScriptPath& "\a.txt", "C:\"
Set FSO = nothing
'--------------
'End of UAC workaround code
End If

Artık a.txt isimli dosyamız hangi klasör içerisinde olursa olsun yanında oluşturulacak ve içerisinde üstteki kodun yeraldığı .vbs scriptimiz ile C:\ dizinine sorunsuz kopyalanacaktır.


Bir Yorum Var
  1. Avatar for Goksel KIRCA

Yorum Ekle

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

Captcha