Posts Tagged ‘ delete ’

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.