Cara Menghapus File yang Lebih Lama dari N Hari Secara Otomatis di Windows - Winhelponline

How Delete Files Older Than N Days Automatically Windows Winhelponline

Windows 10 memiliki fitur bawaan untuk mengosongkan ruang dengan menghapus file lama di % temp% direktori dan Download map. Setting Windows 10 memiliki opsi ('Storage') yang otomatis membersihkan file sementara aplikasi Anda tidak digunakan, file di Unduhan yang belum diubah dalam x hari terakhir, atau file yang ada di Recycle Bin selama x hari.



opsi pembersihan pengaturan penyimpanan windows 10



Selain itu, alat Pembersihan Disk membersihkan file di % temp% direktori yang belum diakses di 7 hari terakhir .



Namun, Disk Cleanup dan Pengaturan penyimpanan hanya menargetkan % temp% dan Download folder. Untuk menghapus file yang lebih lama dari jumlah hari tertentu di lokasi folder 'kustom' seperti Dokumen folder, Anda perlu menggunakan salah satu dari tiga metode berikut:

Cara Otomatis Menghapus File yang Lebih Lama dari N Days di Windows

Beberapa metode di bawah memungkinkan Anda menggunakan properti file 'tanggal dibuat' atau 'tanggal diubah' sebagai dasar untuk menentukan file 'lama', sesuai kebutuhan Anda.

Metode 1. Hapus File yang Lebih Lama dari 'N' hari Menggunakan File Explorer

Dengan menggunakan Pencarian Windows, Anda dapat dengan mudah mendapatkan daftar file berdasarkan rentang tanggal yang dipilih, atau file yang lebih lama dari tanggal tertentu.



  1. Buka folder tempat Anda ingin menghapus file lama.
  2. Klik pada kotak pencarian atau tekan tombol F3 pada keyboard.
  3. Klik pada tombol Tanggal diubah, dan pilih salah satu opsi tarik-turun, katakan 'Minggu lalu'.
    hapus file yang lebih lama dari x hari di windows
  4. Windows Search akan memfilter hasil secara instan. Pilih file yang ingin Anda hapus, dan tekan tombol Delete pada keyboard Anda.

Penting: Secara default, pencarian Windows mencari file di folder saat ini DAN semua subfolder. Untuk membatasi pencarian ke folder saat ini saja , klik tombol 'Folder saat ini' pada bilah alat / pita Penelusuran.

Permintaan Pencarian Lanjutan: Operator 'Tanggal'

Jika opsi rentang tanggal yang telah ditetapkan sebelumnya tidak cocok untuk Anda, Anda dapat mengetik di kueri penelusuran khusus. Di kotak pencarian, ketik yang berikut ini untuk memfilter file dari rentang tanggal kustom:

datemodified: 1/1/2017 .. 12/31/2017

Ini menemukan file yang telah dimodifikasi selama rentang tanggal tersebut. Anda juga bisa menggunakan Tanggal Diciptakan: tanggal diakses: atau tanggal: (terutama untuk gambar kamera). Catat itu tanggal: Operator menggunakan metadata tanggal (EXIF) yang direkam oleh kamera.

TERKAIT: Cara Mencari File yang Dibuat Antara Dua Tanggal di Windows

Untuk menemukan file yang belum diubah setelah 1 November 2017, gunakan less-than ( < ) dengan simbol datemodifed: operator, seperti di bawah ini:

datemodified:<11/1/‎2017

hapus file yang lebih lama dari x hari di windows

Pilih file dari daftar dan hapus.

Tip: Daripada mengetikkan rentang tanggal secara manual, ketik datemodified: atau Tanggal Diciptakan: atau tanggal diakses: atau tanggal: operator di kotak pencarian dan biarkan File Explorer menampilkan pemilih tanggal untuk Anda. Anda kemudian dapat memilih tanggal atau rentang tanggal dari pop-up. Untuk menentukan rentang tanggal, pilih tanggal pertama dan seret kursor ke bidang yang sesuai.

Jika Anda ingin menghapus file lama secara otomatis daripada melakukan kueri pencarian setiap saat, Anda perlu membuat file batch atau PowerShell.


Metode 2: Hapus File yang Lebih Lama Dari 'N' Hari Menggunakan Command Prompt

Itu ForFiles alat konsol (di Windows 7, Windows 8, Windows 8.1 dan Windows 10) memilih file atau sekumpulan file dan menjalankan perintah pada file atau kumpulan file tersebut.

Bantuan Forfiles - Sakelar baris perintah / P - Menunjukkan jalur untuk mulai mencari. Folder default adalah direktori kerja saat ini (.). / S - Menginstruksikan agar file muncul kembali ke subdirektori. Seperti 'DIR / S'. / D - Pilih file dengan tanggal terakhir diubah. Misalnya, -365 berarti lebih dari setahun yang lalu, -30 berarti sebulan yang lalu. / C 'command' - Menunjukkan perintah yang akan dijalankan untuk setiap file. String perintah harus dibungkus dengan tanda kutip ganda. Perintah defaultnya adalah 'cmd / c echo @file'. Variabel berikut dapat digunakan dalam string perintah: @file - mengembalikan nama file. @fname - mengembalikan nama file tanpa ekstensi. @ext - hanya mengembalikan ekstensi file. @ Path - mengembalikan jalur lengkap file. @ relpath - mengembalikan jalur relatif file. @isdir - mengembalikan 'TRUE' jika jenis file adalah direktori, dan 'FALSE' untuk file. @fsize - mengembalikan ukuran file dalam byte. @fdate - mengembalikan tanggal terakhir file diubah. @ftime - mengembalikan waktu terakhir file diubah.

Untuk melihat seluruh daftar argumen baris perintah yang didukung oleh alat ini, ketik FORFILES /? di Command Prompt.

Untuk menemukan dan menghapus file yang lebih lama dari jumlah hari tertentu menggunakan ForFiles, buka jendela Command Prompt, dan ketik salah satu perintah berikut:

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c del @path'

-atau-

Untuk File / p 'D:  Skrip Saya' / s / d -30 / c 'cmd / c del @file'

hapus file yang lebih lama dari x hari di windows forfiles.exe forfiles perintah

Di atas mengasumsikan bahwa jalur folder adalah D: Skrip Saya dan Anda ingin menghapus file yang lebih lama dari 30 hari. Sesuaikan jalur folder dan jumlah hari sesuai kebutuhan Anda.

Anda tidak akan melihat pesan keluaran jika perintah berhasil. Jika tidak ada file yang cocok dengan kriteria yang ditentukan, Anda akan melihat pesan EROR: Tidak ada file yang ditemukan dengan kriteria pencarian yang ditentukan .

Tip tambahan: Untuk melakukan uji coba sebelum mencoba menghapus file, untuk memeriksa file mana yang terpengaruh untuk kriteria yang ditentukan, ganti perintah dari dengan dibuang , seperti di bawah ini:

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c echo @path'

-atau-

Untuk File / p 'D:  Skrip Saya' / s / d -30 / c 'cmd / c echo @file'

forfiles menghapus file lama x hari echo

Secara opsional, Anda dapat membuat file batch dengan perintah di atas. Atau untuk menjalankan perintah secara otomatis pada interval tertentu menggunakan Penjadwal Tugas.

Jalankan perintah secara otomatis Menggunakan Penjadwal Tugas

  1. Luncurkan Penjadwal Tugas.
  2. Di Penjadwal Tugas, klik 'Perpustakaan Penjadwal Tugas'
  3. Klik tautan 'Buat tugas' di panel kanan.
  4. Dalam dialog 'Buat Tugas', pilih tab 'Umum'.
  5. Sebutkan nama tugas, ucapkan 'Hapus file lama di Dokumen Saya'
  6. Klik pada tab Pemicu, dan klik Baru.
  7. Pilih 'Sesuai jadwal' dalam daftar drop-down di bawah kotak daftar drop-down 'Mulai tugas'.
  8. Anda dapat memilih untuk menjalankan tugas harian, mingguan, atau bulanan. Jika Anda memilih mingguan, pilih hari dalam seminggu saat Anda ingin tugas tersebut dipicu.
  9. Setelah selesai, klik tombol OK.
  10. Klik tab 'Tindakan', dan klik tombol 'Baru ...'.
  11. Di jendela 'Tindakan Baru', isi yang berikut ini:
    Tindakan: Mulai program Program / skrip: C:  Windows  System32  ForFiles.exe Tambahkan argumen (opsional): / p '% userprofile%  Documents' / s / d -30 / c 'cmd / c del @file'

    hapus file yang lebih lama dari x hari di penjadwal tugas windows

  12. Klik OK.

Sebuah tugas baru dibuat yang saat dijalankan, menghapus file di file Dokumen folder yang belum diubah dalam 30 hari terakhir.


Metode 3: Hapus file yang lebih lama dari N hari menggunakan Script

Pengguna forum Spiceworks memiliki VBScripts yang dapat menghapus file yang lebih lama dari N jumlah hari di jalur folder tertentu secara rekursif. Berikut ini skrip sederhana:

On Error Resume Next Set oFileSys = WScript.CreateObject ('Scripting.FileSystemObject') sRoot = 'C:  Path To Old Files' 'Path root untuk mencari file hari ini = Tanggal nMaxFileAge = 3' File lebih tua dari ini (dalam hari) akan dihapus DeleteFiles (sRoot) Fungsi DeleteFiles (ByVal sFolder) Set oFolder = oFileSys.GetFolder (sFolder) Set aFiles = oFolder.Files Set aSubFolders = oFolder.SubFolders Untuk Setiap file di aFiles dFileCreated = FormatDateTime (file.DateCreated, '2' ) Jika DateDiff ('d', dFileCreated, hari ini)> nMaxFileAge Kemudian file. Hapus (True) Akhiri Jika Berikutnya Untuk Setiap folder di aSubFolders DeleteFiles (folder.Path) Fungsi Akhir Berikutnya

Sumber: Hapus File Lama dan Subfolder Kosong - Pusat Skrip - Spiceworks

PENTING! Skrip di atas mempertimbangkan properti 'Tanggal Dibuat' dari item, bukan 'Tanggal Terakhir Dimodifikasi'. Jika Anda ingin menghapus file yang belum pernah diubah dalam N hari terakhir, ubah baris berikut di skrip:

dFileCreated = FormatDateTime (file.DateCreated, '2')

untuk

dFileCreated = FormatDateTime (file.DateLastModified, '2')

Ini membersihkan file yang lebih tua dari 3 hari. Yang perlu Anda lakukan hanyalah mengubah jalur folder & parameter usia file maks seperti yang diperlukan dalam skrip, simpan dengan file .vbs ekstensi dan jalankan. Perhatikan bahwa skrip bekerja pada folder dan sub-folder yang ditentukan secara rekursif.

Berikut ini skrip lain yang menghapus file yang lebih lama dari N hari, dan secara otomatis membersihkan sub-folder kosong secara rekursif. Lihat Hapus file yang lebih tua dari usia maksimal (dalam hari) - Script Center - Spiceworks

TERKAIT: Cara Menemukan dan Menghapus Folder Kosong dengan Cepat di Windows


Metode 4: Hapus file yang lebih lama dari 'n' hari Menggunakan PowerShell

Opsi ketiga adalah menggunakan PowerShell, yang memiliki cmdlet yang berguna untuk mencari dan menghapus file lama.

Mulai PowerShell ( powershell.exe) , dan ketik perintah berikut:

Dapatkan-ChildItem -Path [folder_path] -File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Hapus-Item -Force

Contoh:

Dapatkan-ChildItem -Path 'D:  Reports' -File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Hapus-Item -Force

Untuk menggunakan jalur yang berisi variabel lingkungan seperti % userprofile% dokumen , gunakan sintaks di bawah ini:

Dapatkan-ChildItem -Path '$ env: userprofile  documents' -File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Hapus-Item -Force

(Catatan: Nama folder di contoh adalah profil pengguna Anda Dokumen map. Ubah nama folder dan jalur sesuai kebutuhan Anda.)

Sejak kami menggunakan -Mengajukan parameter, ini hanya berfungsi untuk file. Jadi, sub-folder yang belum ditulis dalam n hari terakhir dicegah untuk dihapus.

Perintah di atas memiliki tiga bagian:

  1. Itu Dapatkan-ChildItem cmdlet mendapatkan daftar file di folder Dokumen Anda.
  2. Kemudian output disalurkan ke Dimana-Objek cmdlet sehingga penyaringan selesai, hanya memilih file yang belum diubah terakhir x jumlah hari (dalam contoh ini, 30 hari ).
  3. Terakhir, kami menyalurkan hasilnya ke Hapus-Item cmdlet, yang pada gilirannya menghapus file lama yang dikembalikan oleh dua cmdlet sebelumnya.

Kiat 1: Cantumkan file yang cocok, jangan hapus?

Untuk membuat daftar file dan folder yang cocok tanpa menghapusnya, jatuhkan | Hapus-Item beralih.

Dapatkan-ChildItem -Path [folder_path] -File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))}

Tip 2: Sembunyikan kesalahan saat menghapus item

Untuk menyembunyikan pesan kesalahan (saat mengakses atau menghapus item) agar tidak ditampilkan di konsol, tambahkan -ErrorAction SilentlyContinue parameter.

Dapatkan-ChildItem -Path [folder_path] -File -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Hapus-Item -ErrorAction SilentlyContinue -Force

Hapus juga file lama folder

Perhatikan bahwa perintah di atas hanya menghapus file lama tetapi tidak menghapus sub-folder yang belum ditulis sebelumnya x hari. Untuk menghapus folder lama, jatuhkan -Mengajukan argumen di dari perintah yang dijelaskan sebelumnya.

Contoh:

Dapatkan-ChildItem -Path '$ env: userprofile  documents' -Recurse -Force | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Hapus-Item -Force

(Lihat: Dokumentasi cmdlet Get-ChildItem di situs Microsoft)

Penting: Itu -Recurse parameter mengarahkan PowerShell untuk mendapatkan file secara rekursif (dalam sub-direktori). Untuk mencegah pencarian file di subfolder, hapus file -Recurse opsi sehingga hanya folder saat ini yang diproses.


Satu permintaan kecil: Jika Anda menyukai posting ini, tolong bagikan ini?

Satu bagian 'kecil' dari Anda akan sangat membantu pertumbuhan blog ini. Beberapa saran bagus:
  • Sematkan!
  • Bagikan ke blog favorit Anda + Facebook, Reddit
  • Tweet itu!
Jadi terima kasih banyak atas dukungan Anda, pembaca saya. Ini tidak akan memakan waktu lebih dari 10 detik dari waktu Anda. Tombol bagikan ada tepat di bawah. :)