Forum
Merhaba,
Powershell ile 30 günden eski KLASÖRLERİ ve tabiki alt klasörlerini de silmek istiyorum.
Yapı Şöyle : Sunucunu D: sürücüsünde d:\taramalar, d:\genelpaylaşim ve d:\muhasebe olarak 3 ayrı klasörüm var. bunları her akşam \\freenas\Serveryedek\$date adı altında robocopy ile kopyalamaktayım. Bu 3 klasör üçerisinde çok eski ve yeni dosyalar var.
Freenas içerisinde oluşturulan günlük klasörlerin 30 günden eskilerini sildirmek istiyorum.
Nasıl bir komut ile yaptırabilirim.
Merhaba Yasin Bey,
Aşağıdaki PS ile 30 günden eskilerini sildirme işlemini gerçekleştirebilirsiniz.
$Path değişkeni içerisindeki $date değerini kendi tarih formatınızda yazdırılması gerekli.
Set-Executionpolicy RemoteSigned
$days=30
$Path="\\freenas\Serveryedek\$date"
Function CleanLogfiles($TargetFolder)
{
write-host -debug -ForegroundColor Yellow -BackgroundColor Cyan $TargetFolder
if (Test-Path $TargetFolder) {
$Now = Get-Date
$LastWrite = $Now.AddDays(-$days)
$Files = Get-ChildItem $TargetFolder -Recurse | where {$_.lastWriteTime -le "$lastwrite"} | Select-Object FullName
foreach ($File in $Files)
{
$FullFileName = $File.FullName
Write-Host "Deleting file $FullFileName" -ForegroundColor "yellow";
Remove-Item $FullFileName -ErrorAction SilentlyContinue | out-null
}
}
Else {
Write-Host "The folder $TargetFolder doesn't exist! Check the folder path!" -ForegroundColor "red"
}
}
CleanLogfiles($Path)
Bilginize.
Cevabınız için teşekkür ederim.
Göndermiş olduğunuz kodu kopyalarak yedekleme dosyama ekledim. Fakat istediğim silme işlemini yapamadı.
- Silme işlemi için her eski klasör için onay istedi.
- Klasörün içerisindeki, örneğin 20 gün eski klasörleri sil dediysem o klasördeki 20 gün eskileri siliyor. Yenilerini Bırakıyor.
- Silme işlemini uyguladığı klasörün değiştirme tarihini bugün yapıyor.