Size Linux kabuğunun ne kadar esnek olabileceğini göstermiştik. , ancak bu, Windows'un daha geride olduğu anlamına gelmez. Kabuk tercihinize bağlı olarak kullanabileceğiniz iki teknik, cmd veya PowerShell.
PowerShell 3
Get-ChildItem –Yol “C: \ Backups” –Recurse | Where-Object CreationTime –lt (Get-Date) .AddDays (-5) | Öğeyi kaldırmak
PowerShell 2
Get-ChildItem –Yol “C: \ Backups” –Recurse | Nerede-Object{$_.CreationTime –lt (Get-Date).AddDays(-5)} | Öğeyi kaldırmak
Açıklama
- Öncelikle Path C: \ Backups içinde FileInfo ve DirectoryInfo nesnelerini alıyoruz.
- FileInfo ve DirectoryInfo nesnelerinin her ikisi de bir CreationTime özelliği içerir, bu nedenle bunu kullanarak koleksiyonu filtreleyebiliriz.
- Daha sonra –lt (küçüktür) operatörü, nesnelerin CreationTime özelliğini Get-Date (geçerli tarih) çıkartma 5 gün ile karşılaştırmak için kullanılır.
- Bu daha sonra bize 5 günden daha önce oluşturulmuş ve Remove-Item'a aktardığımız nesnelerin bir koleksiyonunu bırakıyor.
Profesyonel İpucu
Neyin kaldırılacağını görmek için –WhatIf parametresini kullanabilirsiniz:
Get-ChildItem –Yol “C: \ Backups” –Recurse | Where-Object CreationTime –lt (Get-Date) .AddDays (-5) | Öğeyi Kaldır –WhatIf
Komut istemi
PowerShell yöntemlerinden birini kullanmanızı tavsiye etsek de, cesur ayrıntıların hiçbirine girmeden bunu komut isteminden de yapabilirsiniz.
forfiles -p "C: \ Yedekler" -s -m *. * -d -5 -c "cmd / c del @path"
Profesyonel İpucu
Hangi dosyaların silineceğini görmek için echo'yu kullanabilirsiniz.
forfiles -p "C: \ Yedekler" -s -m *. * -d -5 -c "cmd / c echo @file"