Delete/Menghapus File lama menggunakan *.bat


Langsung saja, suatu saat kita perlu untuk menghapus file lama yang sudah tidak digunakan. Biasanya kita lakukan pada file hasil backup. Saya sendiri menggunakan Cobian Backup untuk melakukan backup (lewat jaringan) pada file database yang berada diserver. Tapi kelemahan Cobian tersebut adalah tidak bisa otomatis menghapus file-file lama yang telah di backup. Sehingga file akan selalu bertambah dengan berjalannya waktu.

Setelah googling, akhirnya saya menemukan script bat yang powerful untuk melakukan tugas delete tersebut. Untungnya, Cobian menyediakan event yang dapat meng-eksekusi program atau bat pada waktu post-backup (setelah proses backup selesai). Sehingga script yang nanti kita buat, akan kita masukkan ke event post backup yang tersedia di Cobian.

Jika anda ingin menghapus secara rutin (Tanpa Cobian atau tools lain), anda bisa menggunakan Schedule Task bawaan OS Windows. Langsung saja, berikut kode nya:

forfiles /P "C:\nama_folder" /S /M backup*.bak /D -7 /C "CMD /C DEL @file"

Tulis script tersebut pada notepad atau text editor kesayangan anda, dan simpan dengan ekstensi bat. Jika ada yang error dengan script diatas, kemungkinan file forfiles tidak ada pada komputer anda, jika belum ada silahkan download di ftp://ftp.microsoft.com/ResKit/y2kfix/x86/.

Penjelasan script:

/P "C:\nama_folder", adalah folder dimana file yang akan di hapus berada.

/S, merupakan satu kesatuan dengan /P, yaitu akan mencari juga di subfolder.

/M backup*.bak, adalah Masking nama file yang akan di delete. Misal Nama file nya adalah backup_20100612_0000.bak, maka file yang akan dihapus adalah file yang berawalan backup dan ber ekstensi .bak.

/D -7, adalah umur dari file yang akan dihapus, -7 menunjukkan file yang umur nya 7 hari dari sekarang. Anda juga bisa menggunakan parameter tanggal pada opsi /D ini.

/C "CMD /C DEL @FILE", adalah opsi untuk menjalankan Command prompt setelah file yg ditentukan berhasil dicari, /C yg kedua adalah milik perintah CMD (Command Prompt) yang akan mengeksekusi perintah selanjutnya, yaitu DEL (Delete), dan @FILE merupakan file yang berhasil ditemukan menggunakan opsi² yang telah ditentukan didepan.

Sebenarnya masih banyak lagi opsi yang bisa dipakai untuk melakukan penghapusan tersebut. perintah forfiles hanya digunakan untuk mencari file dengan kriteria tertentu, sedangkan untuk menghapus tetap menggunakan perintah standar DOS, yaitu DEL (Delete). Untuk menambahkan log, bisa ditambahkan di baris paling akhir dengan menambahkan pipe, sehingga script nya menjadi:

forfiles /P "C:\nama_folder" /S /M backup*.bak /D -7 /C "CMD /C DEL @file | CMD /C echo [%DATE% %TIME%] - @FILE - Berhasil Dihapus..."

Untuk opsi² lain silahkan baca di help-nya dengan mengetikkan forfiles /?

Okey, Sekian dulu tutorial dari saya. Semoga bermanfaat.

Advertisement
    • agustian
    • September 30th, 2020

    masih aktif g ya blognya? klo mw spesifik delete file berumur lebih dari 30 hari, di ganti ny sperti apa ya? trims

      • Khofidin
      • September 30th, 2020

      Udah nggak begitu aktif mas, gak sempat update 🙂
      untuk nyari file yg lebih dari 30 hari cukup ganti -7 menjadi -30 mas

  1. kang, saya mau nanya, ini saya menghapus file, tapi saya cancel karena terlalu lama banget 2 jam menghapusnya makanya saya restart… terus setelah saya restart saya coba hapus lagi ehh malah gk jalan kang Recycling nya . solusi kang? 😦

      • Ofidz Al-akadarnya
      • January 23rd, 2018

      Maaf, lama tidak buka blog. Sudah solved belum ya?

    • yozi maulana
    • September 12th, 2017

    kalau waktu setiap 30 menit gimana gan?

      • Ofidz Al-akadarnya
      • September 12th, 2017

      Jalankan lewat schedule task

    • thiwoels
    • July 18th, 2010

    Mantap bossss. Ijin copas dah.

      • f1dz
      • July 19th, 2010

      Monggo gan… Jangan lupa cendol nya… Kekekeke…

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: