Herhangi bir Explorer eklentisi bilmiyorum, ancak Windows'taki çoğu şey gibi, bu PowerShell ile yapılabilir:
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
}
Bu betiği .ps1
uzantılı bir metin dosyası olarak kaydedin . Bunu daha sonra düzenli aralıklarla çalıştırmak için Görev Zamanlayıcı'yı kullanabilirsiniz.
Öncelikle, PowerShell scriptlerinin yürütülmesine izin vermeniz gerekir, çünkü varsayılan olarak sadece doğrudan PowerShell istemine yazılan komutları çalıştırabilirsiniz. Bunu yapmak için, PowerShell'i açın ve aşağıdaki komutu yazın:
Set-ExecutionPolicy RemoteSigned
İstendiğinde "y" veya "yes" yazın. Daha Get-Help Set-ExecutionPolicy
fazla bilgi için bkz .
Şimdi Görev Zamanlayıcı'yı açın ve aşağıdaki parametrelerle yeni bir görev oluşturun:
- "Genel" sekmesinin altına bir ad girin ve "En yüksek yetkilerle çalıştır" seçeneğini işaretleyin.
- "Tetikleyiciler" sekmesinin altında yeni bir tetikleyici ekleyin ve görevi günlük olarak çalışacak şekilde ayarlayın
- "Eylemler" sekmesi altında yeni bir işlem ekleyin:
- türü "bir program başlat" olarak bırakın
- "Program / script" alanını "
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
- "Argüman ekle" alanını ayarlayın
-NonInteractive -File "C:\path\to\script.ps1"
- "Koşullar" sekmesi altındaki "Görevi yalnızca bilgisayar AC gücündeyse başlat" seçeneğinin işaretini kaldırın.
Komut dosyasının satır satır açıklaması:
ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {
Bu, bilgisayardaki tüm sürücülerin bir listesini alır ve bunlar arasında birer birer döner. -PSProvider FileSystem
PowerShell ayrıca kayıt defteri kovanları gibi çeşitli başka şeyler için pseudodrives çünkü parametre, sadece dönüş disk sürücüleri için gereklidir.
Daha fazla bilgi için, bkz. Get-Help Get-PSDrive
Ve PowerShell'de döngü işlemeyle ilgili bu eğitim .
$Path = $Drive.Name + ':\$Recycle.Bin'
Bu, geçerli sürücüdeki Geri Dönüşüm Kutusu klasörünün yolunu oluşturur. PowerShell'in $Recycle
bir değişken olarak yorumlanmasını önlemek için ikinci kısmın etrafında tek tırnakların kullanıldığına dikkat edin .
Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
Bu, belirtilen yolun altındaki tüm dosyaları ve alt klasörleri döndürür (önceki komutla oluşturduğumuz dosya). -Force
Parametre gizli ve sistem klasörler halinde gitmek için gerekli edilir ve -Recurse
parametre, yani komut özyinelemeli yapar. tüm alt dizinlerde de dolaşın. -ErrorAction
PowerShell komutlarının çoğu için standart bir parametredir ve değer SilentlyContinue
, komutun hataları yoksaymasını sağlar. Bunun amacı, dosyaları derhal silmek üzere yapılandırılmış olan sürücülerin hatalarını önlemektir. En |
sondaki sembol, sonuçları bir sonraki komuta yönlendirir; Daha iyi okunabilirlik için onu birkaç satıra ayırdım.
Daha fazla bilgi için bkz Get-Help Get-ChildItem
.
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
Bu sadece önceki komutun sonuçlarını filtreler ve sadece 30 günden daha eski olanları verir. $_
şu anda işlenmekte olan nesneyi ifade eder ve LastWriteTime
bu durumda özellik, dosyanın silindiği tarih ve saati gösterir. Get-Date
geçerli tarihi döndürür.
Daha fazla bilgi için, bkz. Get-Help Where-Object
Ve Get-Help Get-Date
.
Remove-Item -Recurse
Bu sadece bir önceki komut tarafından kendisine iletilen öğeleri siler. -Recurse
Parametre otomatik olarak boş olmayan alt klasörlerin içeriğini siler; onsuz, böyle klasörler için istenir.
Daha fazla bilgi için bkz Get-Help Remove-Item
.