Belirli günden (mesela 1 ay) eski dosyaları sildirmek


forfiles
Sitemizde arasıra Bat komutları ile ilgili örnekler veriyoruz , bugün gelen bir soru ise aynen şöyle idi: Bir klasör içindeki 1 aydan eski olanlarını silen bir .bat dosyasını nasıl hazırlayabilirim , Bu sorunun


cevabı için Microsoft a ait olan ve az bilinen bir Windows komut satırı aracından faydalanacağız ismi forfiles , yeri ise C:\Windows\System32\forfiles.exe , peki nedir bu forfiles ? , ilk olarak Microsoft tarafından Vista işletim sisteminin yönetim özelliklerinde kullanıldı ve bir komut satırı aracıdır , dosya ve klasörlerde isim , uzantı , ve yaşa bağlı işlemlerde büyük kolaylık sağlar ve toplu iş dosyaları için yardımcı komutlar barındırır forfiles te kullanılabilecek komutlar hakkında bilgi almak için cmd de aşağıdaki komutu vermeniz yeterlidir.

forfiles /?

Genellikle sistem yöneticilerinin işlerini kolaylaştırmaya yönelik olsada sıradan kullanıcıların da başlıkta belirttiğim şekilde işine yarayacaktır , Sorumuza dönersek : belirli bir klasör içerisindeki 1 aydan eski dosyaları sildirmek istiyoruz , ben örnek olması açısından C:\ dizinimde Logs isminde bir Klasör açtım ve içerisine çeşitli tarihlerde oluşturulmuş dosyalar attım , aşağıdaki kod ile 1 aydan eski tüm dosyaları sildirdim

forfiles -p "C:\logs" -s -m *.* /D -30 /C "cmd /c del @path"

Üstteki kod incelendiğinde konumuz için önemli olan iki değişken göze çarpmaktadır ilki dosya yolu ikincisi kaç günden eski olanlarını sildireceğimiz her ikisini de aşağıda kırmızı ile işaretledim

forfiles -p "C:\logs" -s -m *.* /D -30 /C "cmd /c del @path"

Bunlardan ilki silmek istediğimiz yolu ikincisi ise kaç günden eski olmaları gerektiğini belirtmektedir yani komut ile ben ; C:\Logs dosyası içerisinde 30 günden eski bütün dosyaları sildiriyorum. Elbette üstteki komutu Notepad e yapıştırıp uzantısı .bat olacak şekilde kaydetip çalıştırmak daha pratik olacaktır , Parametrelerine kısaca göz atacak olursak:

/P : yoladı Aramaya başlanacak yolu gösterir.Varsayılan klasör: geçerli çalışma dizini (.)
/M : aramamaskesi , Arama maskesine göre dosyaları arar. Varsayılan arama maskesi: '*'.
/S : Özyinelemeli olarak alt dizinlere gidileceğini belirtir. "DIR /S" gibidir.
/C : komut Her bir dosya için yürütülecek komutu belirtir.Komut dizelerinin çift tırnak içine alınması gerekir.Varsayılan komut: "cmd /c echo @file".Komut dizesinde aşağıdaki değişkenler kullanılabilir:

@file - dosyanın adını döndürür.
@fname - uzantı hariç olmak üzere dosya adını döndürür
@ext - yalnızca dosyanın uzantısını döndürür.
@path - dosyanın tam yolunu döndürür.
@relpath - dosyanın göreli yolunu döndürür.
@isdir - dizinler için "TRUE",dosyalar için "FALSE" döndürür.
@fsize - dosyanın bayt cinsinden boyutunu döndürür
@fdate - dosyanın son değiştirme tarihini döndürür.
@ftime - dosyanın son değiştirme saatini döndürür.

Komut satırına özel karakterler girmek için,karakterin onaltılık kodunu 0xHH biçiminde kullanın (örn., sekme için 0x09). İç CMD.exe komutlarının önüne "cmd /c" getirilmelidir.

/D : tarih , Son değiştirme tarihi "dd.MM.yyyy" biçimi kullanılarak belirtilen tarihe eşit veya bu tarihten büyük (+) veya bu tarihe eşit veya bu tarihten küçük (-) olan dosyaları seçer ya da son değiştirme tarihi geçerli tarih artı "gg" güne eşit veya bundan büyük (+) veya geçerli tarih eksi "gg" güne eşit veya bundan küçük (-) olan dosyaları seçer. Geçerli bir "gg" gün sayısı, 0 ile 32768 arasında herhangi bir sayı olabilir. İşaret belirtilmezse, "+" varsayılır.

Aşağıda C:\Logs klasörümüzün içeriğini görüyorsunuz

Forfiles klasor icerigi

1. Belirli günden eski dosyaları listeletelim (örneğimiz 1 gün):

Forfiles -p "C:\logs" /s /m *.* /d -1 /c "cmd /C Echo @File"

klasor icerigi sonuc

2. KLasör içerik dökümünü ful yolunu vererek listelesin

Forfiles -p "C:\logs" /s /m *.* /d -1 /c "cmd /C Echo 0×22@Path\@File0x22"

Gibi örnekler çoğaltılabilir.


9 Yorum Var
  1. Avatar for Velociraptor
  2. Avatar for ABC
  3. Avatar for ABC
  4. Avatar for Velociraptor
  5. Avatar for MtK
  6. Avatar for Velociraptor
  7. Avatar for Yağmur
  8. Avatar for Velociraptor
  9. Avatar for mehmet

Yorum Ekle

E-posta hesabınız yayımlanmayacak.

Captcha