Sürükle bırak , Kopyala yapıştır ... gibi yöntemlerle dosya kopyalarken hedef klasörde bulunan aynı dosyaların üzerine yazdırmamak için "Bu dosyaları Atla" seçeneğini tercih ederiz , bu genellikle yüzlerce
dosyanın içerisinden son ilave edilen 5-10 tanesinin yeni olması fakat bunların isimlerinin tam olarak bilinmediği durumlarda kullanışlıdır
Eğer hedefteki dosyaları değiştir seçeneği seçilirse gereksiz yere yüzlerce dosyanın üzerine yazdırmış oluruz buda zaman kaybına sebep olacaktır , dosya sayısı binleri onbinleri bulduğunda bekleme süresi 30 - 45 dk lara kadar çıkabilir eğer aynı işlemi Komut istemi (cmd) ile yaparsak karşımıza yine onay sorusu gelecektir
Peki ama bu sadece yeni dosyaları hedef klasöre atma işlemini otomatikleştirmek istersek ne yapmamız gerekir ? her defasında bu onay sorusu ile karşılaşmaktan nasıl kurtulabiliriz ? Kopyalamada en kolayı .bat scripti kodlarından faydalanamaktır bunu yapmanın de iki farklı yolu mevcuttur :
1. IF döngüsü ile hedef klasöre sadece yeni dosyaların kopyalanması
Eğer hedef klasörde var olup olmadığı kontrol edilecek dosya sayısı bir adet ise aşağıdaki komut kullanılabilir
IF NOT EXIST "topath\filename" COPY "frompath\file" "topath\file"
Mesela E:\ dizinimizde sordum.net ve sordum.org isimlerinde iki adet klasörümüz olsun , ben sordum.net klasöründen Onay sorusu ile muhatap olmadan sadece sordum.org klasöründe olmayan dosyaların buraya kopyalanmasını istiyorum bu durumda bat dosyamın içerisinde aşağıdaki kodu kullanırım. Örneğimizde "E:\sordum.net" ve "E:\sordum.org" klasörlerimiz mevcut birinden diğerine bir txt dosyası kopyalayacağız.
IF NOT EXIST "E:\sordum.org\e.txt" COPY "E:\sordum.net\e.txt" "E:\sordum.org"
Komut tam olarak şunu yapmaktadır : Eğer sordum.org klasörünün içerisinde e.txt dosyası yoksa sordum.net teki e.txt dosyasını sordum.org klasörünün içerisine kopyala.
2. Robocopy ile seçmeli kopyalama yapma
Eğer bir klasörü diğerine kopyalayacaksak fakat Onay sorusu olsun istemiyorsak robocopy komutundan faydalanabiliriz , aynı örneğimize devam edelim busefer sordum.net klasörü içerisinde yeralan ama sordum.org ta yeralmayan bütün dosyaları kopyalatacaksak aşağıdaki komut işimizi görecektir
robocopy E:\sordum.net E:\sordum.org /s /xn
Ayrıca ihtiyacımıza göre aşağıdaki parametreleride kullanabiliriz
/xc - exclude changed files (Değiştirilen dosyaları hariç tut)
/xn - exclude newer files (Yeni tarihli dosyaları hariç tut)
/xo - exclude older files (Eski tarihli dosyaları hariç tut)
Ayrıca aşağıdaki konularda Kopyalama konusunda ilginizi çekebilir
- Bir dosyayı kopyalayalım (vbs) Burada
- Vbs ile bir klasörü tüm alt klasörleri ile birlikte taşımak Burada
- Seçmeli kopyalama yapmak Burada
- vbs ile bir klasör içeriğini kopyalamak Burada
- Bat ile belirli uzantıdaki dosyaları silmek Burada
- Boyutu büyük dosyaları kopyalama ipuçları Burada
- Windows Kontrol ve diyalog yazılarını kopyalamak Burada
- Vbscript ile Dosya veya Klasör kopyalayın Burada
Belli durumlarda işe yarayacaktır remzi selamlar
kopyalama yolunun alternatifi , onay sorusu olmadan deneyelim bakalım sevdim. Elinize sağlık.