Bazen bir klasör ve tüm alt klasörlerini başka bir dizine taşımamız gerekebilir bu ister yedekleme amacıyla isterse başka bir amaçla olsun her daim bir ihtiyaç olarak karşımıza çıkmıştır işte bu
işlemi .vbs ile yapmanın yolu:
Const OverWriteFiles = True Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.CopyFolder "kopyalanacak klasör ve yolu" , "kopyalanacağı yer" , OverWriteFiles
Örnek uygulama
Const OverWriteFiles = True Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.CopyFolder "C:\Users\velociraptor\Documents\Usb_kilit" , "D:\" , OverWriteFiles
bu kodları bir notepad e yapıştırıp ve Dosya - Farklı Kaydet... seçeneğine tıklayın
Açılan pencerede herhangi bir isim verin (dosya ismini istediğiniz şekilde düzenleyin ) ve uzantısı .vbs olarak kaydedip çalıştırın
Yorumlarda bir arkadaşımızın dile getirdiği gibi üstteki kodda ; "C:\Users\velociraptor" ibaresi var yani kodu kullanmak isteyen önce bu kısmını kendi kullanıcı ismine göre editleyecek ki kod çalışabilsen , ya bu dosyayı kodlamadan hiç anlamayan birine yollamak durumundaysak veya bir programın parçası olarak kullanacaksak ne yapacağız ? Öylesi bir kod kullanalımki hangi bilgisayarda çalıştırılırsa çalıştırılsın Kullanıcı isminden bağımsız kopyalama yapabilsin Bunu çevre değişkeni diye tanımlanana "Environment variables" yardımı ile gerşekleştirebiliriz örneklerini Buradaki konumuzda vermiştik , üstte verdiğimiz kodlara sadık kalarak "C:\Users\velociraptor" değişkenini kullamadan scripti evrenselleştirelim
Const OverWriteFiles = True Set objFSO = CreateObject("Scripting.FileSystemObject") Set oShell = CreateObject("Wscript.Shell") strUserProfile = oShell.ExpandEnvironmentStrings("%USERPROFILE%") objFSO.CopyFolder strUserProfile & "\Documents\1", "D:\" , OverWriteFiles
Görüldüğü gibi en yalın hali ile strUserProfile değişkeni C:\Users\velociraptor ın yerini aldı ve eğer belgeler klasörünüzde "1" isminde bir klasör oluşturursanız ve üstteki kodu çalıştırırsanız bunun "D" dizininize kopyalandığını göreceksiniz , elbette burada klasör isimlerini kendinize göre düzenlemeniz kolaylık olacaktır
Klasör varmı kontrol edelim
Üstteki yöntemlerde eğer kopyalanmak istenen Klasör "1" yoksa aşağıdaki hatayı verecektir
scripti yolladığınız kişi çalışmıyor sanabilir o nedenle gelin buna bir kontrol koyalım ve eğer klasör yoksa "Dosya bulunamadı" diye uyarı versin , eğer dosya var ve kopyalama yapılırsa da "Kopyalandı" diye bildirsin
Üstteki kontrolleri yapan scripti Aşağıdaki linkten indirebilirsiniz
Scripti yönetici yetkileri ile çalıştırdığınızda da mı işlemi gerçekleştirmiyor ?
Web Link ...
Merhaba ,
Bir klasör ve alt klasörleri SFTP ye kopyalamak istiyorum. Fakat tüm yöntemleri denedim kabul etmiyor. Yardımcı olabilir misiniz?
vbs "%UserProfile%" komutunu tanımaz aşağıdaki link yardımcı olacaktır
Web Link ...
Merhaba, aşağıdaki komutu çalıştıramıyorum. Yardımcı olabilir misiniz.
Const OverWriteFiles = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFolder "KopyalanacakKlasorAdi" , "%UserProfile%\AppData\Roaming\" , OverWriteFiles
Aşağıdaki makale işinize yarayacbilir
Web Link ... yada Web Link ...
Merhaba ben serverımın d sürücüsünde bulunan bir klasörü tüm alt klasörleri ile kendi bilgisayarıma yedeklemek istiyorum. bunun için hangi konutları kullanmam gerekir. webde bir çok yeri gezdim ancak böyle bir koda rastlayamadım.
Rica ederim , kolay gelsin
Çok teşekkür ediyorum 🙂
Gerekli kodu ve açıklamayı ilave ettim , umarım işinizi görür
Hocam kullanıcı dosyalarının yedeğini almak istesek, bütün bilgisayarlarda çalışacak kullanıcı ismi yerine kullanabileceğimiz bi değişken var mı?