Bu eğitimde basitleştirilmiş bir Windows toplu iş dosyası ve görev zamanlayıcı kullanılarak otomatik günlük yedekleme nasıl oluşturacağımızı göreceğiz.
Toplu iş dosyası oluşturmak için not defterini kullanacağız. Windows toplu iş dosyası, bilgisayara ne yapılacağını bildiren bir dizi komuttur. Yedeklemek istediğimiz klasörü kopyalamak için komut eklemek. C sürücüsünde bulunan “Deneme” adındaki bir klasörün içerisindeki dosyaları D sürücüsündeki “Yedek” adlı bir klasöre yedekleme yapacağız. İlk önce yedekleme yapmak için bir komut oluşturacağız.
Önce not defterini açmanız gerekecek. Not defterinin açmanın en kolay yolu Windows + R tuşuna basarak “çalıştır“ı açın. Çalıştır’a “notebad” yazıp enter’a basın. Açılan note defterine aşağıda yazan komutu yazın.
xcopy C:\deneme\* D:\yedek\Yedek-%date%\* /Y /Q /S
Xcopy komutları dosya ve klasörleri kopyalar. Komutun söz dizimi xcopy [destination] [arguments] ‘dir. Bağımsız değişkenler, xcopy’ye bazı durumları nasıl ele alacağını bildirir. Bu taslakta dosyaların üzerine yazılması için “/Y” kullandım. “/Q“, kopyalama işlemi sırasında dosya adlarını görüntülemez. “/S” dizinleri ve alt dizinleri kopyalar.
C:\deneme\ asıl dosyaların olduğu yeri belirliyor. D:\Yedek\ yedeklenecek yeri belirliyor. Bu alanları kendinize göre düzenleyebilirsiniz. Yedekleme klasörü adını her gün değiştirmek istemezseniz, basitçe \Yedek\ ya da kendinize göre yazabilirsiniz. “Yedek %date%” değişkendir. Bu komut “Yedek” klasör içerisine yedekleme yapıldığında yeni yedekleme tarihini gösteren “Yedek-07.02.2018” şeklinde bir klasör oluşturacaktır. Dosyalar bu oluşturulan klasör içerisine yedeklenecek. Not defterine xcopy C:\deneme\* D:\yedek\Yedek-%date%\* /Y /Q /S komutunu yazdıktan sonra dosyayı yedek.bat olarak kaydedin.
Not defteri “bat” olarak nasıl kayıt edilir?
Not defteri varsayılan olarak “.txt” uzantılı olarak kayıt edilir. “.bat” olarak kayıt etmek için dosya uzantısını “.bat” olarak değişmeniz yeterli olacaktır. Dosyayı kayıt ederken veya farklı kayıt ettiğinizde “*” olan alana istediğiniz adı verebilir. “.txt” olan yere “.bat” olarak kayıt ettiğinizde toplu iş dosyası olarak kayıt edilecektir.
Kayıt edilmiş bir “.txt” uzantılı dosyayı “Farklı kayıt et” diyerek yukarıdaki gibi “.bat” olarak kayıt edebilir veya uzantıyı değiştirmek için herhangi bir klasör içerisinde üst kısımdan “Görünüm” kısmından “Dosya adı uzantıları“na çeltik koyduğunuzda bilgisayarınızdaki tüm dosyaların uzantıları görünecektir. Kodları yazdığınız “.txt” uzantılı not defterinin sonunda bulunan “.txt” uzantısını “.bat” olarak değiştirdiğinizde dosya Windows toplu iş dosyasına dönüşecektir.
Oluşturduğunuz toplu iş dosyasını tıkladığınızda hedef dosyadaki dosyalar D:\Yedek\ klasörüne yedeklenecek. %date% komutunun düzgün çalışması için bilgisayarınızın tarih biçiminin düzgün çalıştığından emin olun. Tarih düzgün biçimde ayarlı değilse yedekleme çalışmaz bu kodda oluşan genel hata %date% kodunun bilgisayar tarih biçimi ile uyuşmamasından kaynaklanır. Bu kod yapılırken tarih biçimi “09.02.2018” şeklindeydi. Windows bilgisayarlarda Tarih ve saat ayarlarının nasıl yapılacağına buradan bakabilirsiniz.
Görev Zamanlayıcısı
Bu toplu iş komutunu Windows görev zamanlayıcısı ile otomatik olarak yedekleme yapmasını sağlayabilirsiniz. Görev zamanlayıcısı işlevinin nasıl kullanılacağına buradan bakınız.
Merhabalar , cihazımdaki tarih saat ayarını sizin verdiğiniz ayarlara göre yaptığım halde
ör: 30.07.2019 09:35 dosya kopyalama işlemini yapmıyor. -%date% kısmını bat tan kaldırınca birebir kopyalıyor sorun yok. -%date% ekleyince çalışmıyor. diyeceksinizki kesinlikle tarihle ilgili bir sorun. bende kontrol ediyorum defalarca tüm tarih doğru.
cihazın domain de olması etkiler mi ?tarih saat ayarlarını domainden çekiyor. ama sizin dediğiniz gibi çekiyor.
Merhaba,
Bende tarih ile ilgili sorun yaşadım. Aşağıdaki şekilde yapınca başarılı oldu.
@echo off
for /F “usebackq tokens=1,2 delims==” %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if ‘.%%i.’==’.LocalDateTime.’ set ldt=%%j
set yyyy=%ldt:~0,4%
set mm=%ldt:~4,2%
set dd=%ldt:~6,2%
xcopy C:\test\* Z:\Yedek-%mm%-%dd%-%yyyy%\*