Bugün bir takipçimiz , bat kodları ile yaptığı bir işlem hakkında email ile bir soru iletmişti , çözmeye çalıştığı şey ise varsayalım "edefter" adlı bir klasör olsun ve bununda içerisinde .xml dosyaları oluşsun ,
arkadaşımız bu xml dosyalarını günde dört kez ayrı ayrı yedeklemek istiyor , kullandığı komut aşağıda
M:\EDEFTER>xcopy *.xml D:\Defter\Yedekler\%date%\11 /d/e/s/y/c/z/i
Üstteki komut çalıştırıldığında bugüne tarihli bir klasör ve içinde 11 adında bir klasör daha açarak o anki yedeği alıyor (11 yedek saati oluyor) , fakat şöyle bir sıkıntı var bu kodda 11 sabit kaldığından arkadaşımız diyelimki saat 15 te yedek alacak , manuel olarak bu 11 i 15 yaptıktan sonra kodu çalıştırmak zorunda böylece O gün tarihli bir klasör ve içerisinde de yedek saatini temsil eden bir bir klasör daha oluşup içine yedekler alınmış oluyor.
Soruna gelirsek ; Arkadaşımız Bu alt klasör ismini her defasında elle vermek yerine otomatik olarak saati içerecek şekilde oluşturmak istiyor üstteki resimdede belirtildiği gibi , mkdir %date%\11 şeklinde çalışan kod mkdir %date%\%Time% şeklinde verildiğinde çalışmıyor. Buradaki sıkıntı , saatin klasör ismi için uygun olmaması , peki çözüm nedir ?
Klasör ismi günün tarihini saatini dakika ve saniyesini içersin
Aşağıdaki kodlar bat şekline getirilip çalıştırıldığında bize günün tarih /saat/dakika/saniye sini içeren bir klasör ismi, oluşturacaktır
@echo off set datestamp=%date:~%% mkdir %datestamp%--%TIME:~0,2%_%TIME:~3,2%_%TIME:~6,2%
Eğer klasör isminden saniyeyi çıkarmak istiyorsak kodun sonundaki _%TIME:~6,2% kısmı silmemiz yeterlidir ,
Klasör ismi günün tarihi olsun ve alt klasör ismi saat ve dakikadan oluşsun
Arkadaşımız tam olarak bunu yapmak istediğinden yukarıdaki kod basit şekilde aşağıdaki şekilde düzenlenebilir
@echo off set datestamp=%date:~%% mkdir %datestamp%\%TIME:~0,2%_%TIME:~3,2%
Böylece günün tarihi klasör ismi olacak alt klasör ismi ise o anın saat ve dakikası olacaktır, ilk kod buna uygun şekilde düzenlenirse (ki arkadaşımız öyle yapmış) aşağıdaki kod elde edilmiş olacaktır
M:\EDEFTER>xcopy *.xml D:\Defter\Yedekler\%date%\%TIME:~0,2%_%TIME:~3,2% /d/e/s/y/c/z/i
Böylece bu kodları içeren .bat dosyasını zamanlanmış görevlerden her x saate bir çalışacak şekilde ayarlayıp tüm işlemleri otomatikleştirebilecektir Burada , Üstteki uygulama .bat dosyalarını aşağıdaki linkten indirebilirsiniz
- Klasörün ismi Günün tarihi olsun (vbs) Burada
- Yeni dosya veya klasör ismini kendiniz belirleyin Burada
- VBscript ile isminin sadece birkısmı bilinen klasöre erişim Burada
Çok ilginç bir şey ....MS-DOS Komut İsteminin gücü...
Bir de ms-dos'un modası geçti diyorlar hadi oradan diye cevap verebilecek bir makale yazısıdır bu...
Yorumunuz için Teşekkürler.
Gerçekten süper ötesi hoşuma gitti. Çok teşekkürler
Teşekkürler bülent
windows 10 da date yerine %date:~-10% yazmanız yeterli. windows 10 diğer versiyonlarından farklı olarak %date:~-14% komutuna göre default olarak ayarlanmış. Eski versiyonlarda default ayar %date:~-10% olduğundan direkt 27.03.2022 olarak dosyayı değiştirebiliyorduk. şimdi ise Paz 27.03.2022 olarak 14 haneyi dosya adına yazmaya çalışıyor ve yazamıyor tabii ki 🙂
Tesadüf olmuş umarım işine yarar.Yapılabilirmi ataştırmak gerek , windows izin veriyorsa belki yapılabilir
Peki hocam bunu windows içinde kalıcı hale getirmek için nasıl bir yol izlememiz gerekiyor.
Örneğin Yeni Klasör yerine günün tarihi yazması gibi.
Her yeni klasör oluştur dediğimizde günün tarihi oluşacak olmaz mı böyle bir şey ?
Yemin ediyorum ne zamandır size böyle bir paylaşım yapmak için mail atıcaktım ama bir baktım ki daha önce zaten paylaşmışsınız.
Teşekkür ederiz bir çok konu da bize yardımcı olduğunuz için.
@Mehmet
Aşağıdaki gibi bir örnek verebilirim.
%date% ile win 7 de 17.6.2019 gibi bir sonuç alırken windows 10 da Pzt olarak çıktı alıyorum. ne değişti. Ve win 10 da aynı tarihi almak için ne kullanmalıyız.
Nerey yedeklemek istediğine göre xcopy ile kod oluşturulması gerekir
C:\Users\koraz\AppData\Local\MistSurv\Saved\SaveGames
yolundaki klasoru yedeklemek ıstıyorum saat sn klasor adı ıle ama basaramadım 🙂
olusturacagım bat dosyası nasıl olmalı