Saya tidak tahu adanya add-on Explorer, tetapi seperti kebanyakan hal di Windows, ini bisa dilakukan dengan PowerShell:
ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {
$Path = $Drive.Name + ':\$Recycle.Bin'
Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
Remove-Item -Recurse
}
Simpan skrip ini sebagai file teks dengan .ps1ekstensi. Anda kemudian dapat menggunakan Penjadwal Tugas untuk menjalankan ini secara berkala.
Namun, pertama-tama, Anda harus mengizinkan eksekusi skrip PowerShell, karena secara default Anda hanya dapat menjalankan perintah yang diketik langsung ke prompt PowerShell. Untuk melakukan ini, buka PowerShell dan ketik perintah berikut:
Set-ExecutionPolicy RemoteSigned
Ketik "y" atau "ya" saat diminta. Lihat Get-Help Set-ExecutionPolicyuntuk informasi lebih lanjut.
Sekarang buka Penjadwal Tugas dan buat tugas baru dengan parameter berikut:
- Di bawah tab "Umum", masukkan nama dan centang opsi "Jalankan dengan hak istimewa tertinggi"
- Di bawah tab "Pemicu", tambahkan pemicu baru dan tetapkan tugas untuk dijalankan setiap hari
- Di bawah tab "Tindakan", tambahkan tindakan baru:
- biarkan tipenya sebagai "Mulai program"
- setel bidang "Program / skrip" ke
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
- setel bidang "Tambahkan argumen" ke
-NonInteractive -File "C:\path\to\script.ps1"
- Di bawah tab "Ketentuan", hapus centang "Mulai tugas hanya jika komputer menggunakan daya AC"
Penjelasan skrip baris demi baris:
ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {
Ini mendapatkan daftar semua drive di komputer dan loop melalui mereka satu per satu. The -PSProvider FileSystemparameter yang diperlukan untuk hanya kembali disk drive, karena PowerShell juga memiliki pseudodrives untuk berbagai hal lain seperti gatal-gatal registri.
Untuk informasi lebih lanjut, lihat Get-Help Get-PSDrivedan tutorial ini tentang pemrosesan loop di PowerShell .
$Path = $Drive.Name + ':\$Recycle.Bin'
Ini membangun jalur ke folder Keranjang Sampah di drive saat ini. Perhatikan penggunaan tanda kutip tunggal di sekitar bagian kedua, untuk mencegah PowerShell dari menafsirkan $Recyclesebagai variabel.
Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
Ini mengembalikan semua file dan subfolder di bawah jalur yang diberikan (yang kami buat dengan perintah sebelumnya). The -Forceparameter yang dibutuhkan untuk masuk ke folder tersembunyi dan sistem, dan -Recurseparameter membuat perintah rekursif, yaitu. loop melalui semua subdirektori juga. -ErrorActionadalah parameter standar untuk sebagian besar perintah PowerShell, dan nilainya SilentlyContinuemembuat perintah mengabaikan kesalahan. Tujuannya adalah untuk mencegah kesalahan pada drive yang telah dikonfigurasi untuk segera menghapus file. The |simbol di pipa akhir sangat hasilnya ke perintah berikutnya; Saya membaginya menjadi beberapa baris untuk keterbacaan yang lebih baik.
Untuk informasi lebih lanjut, lihat Get-Help Get-ChildItem.
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
Ini cukup menyaring hasil dari perintah sebelumnya dan hanya mengembalikan yang lebih dari 30 hari. $_mengacu pada objek yang sedang diproses, dan LastWriteTimeproperti dalam hal ini mengacu pada tanggal dan waktu file itu dihapus. Get-Datemengembalikan tanggal saat ini.
Untuk informasi lebih lanjut, lihat Get-Help Where-Objectdan Get-Help Get-Date.
Remove-Item -Recurse
Ini hanya menghapus item yang diteruskan oleh perintah sebelumnya. The -Recurseparameter secara otomatis menghapus isi subfolder non-kosong; tanpa itu, Anda akan diminta untuk folder seperti itu.
Untuk informasi lebih lanjut, lihat Get-Help Remove-Item.