Forum

Windows Otomatik Kl...
 
Bildirimler
Hepsini Temizle

Windows Otomatik Klasör Temizleyen Script

5 Yazılar
3 Üyeler
0 Reactions
824 Görüntüleme
(@leventgenc)
Gönderiler: 18
Eminent Member
Konu başlatıcı
 

Merhaba,

İşletim sistemi : Win7_64

DATA diye bir klasörüm var. Bu klasörün içine otomatik build alıyorum. Her bir build de klasörün içine yazilimin versionu ve tarih saat bilgisini içeren bir klasör oluşuyor ve bu klasörler gittikçe çoğalıyor...

DATA klasörünün içinde sadece 10 adet release kalmasını istiyorum. Yani 10 adet klasör klasın istiyorum. 11 olduğunda en eski yaratılan klasörü silsin. 

Bunu bir script yardımıyla zamanlanmis gorev olarak eklemeyi planliyorum.

Bu yonde calisma yapan arkadaslarin yardimlarini bekliyorum.

Tesekkurler. 

 

 

 
Gönderildi : 11/01/2019 11:24

(@eravse)
Gönderiler: 1753
Üye
 

powershell ile yapabilirsiniz bır test edın ıstersenız 

 

saygılarımla 

 

 

$path = "C:\TCozumPark"

# test dosyaları olustur 
1..20 | % {
    Remove-Item -Path "$path\$_.txt" -ea SilentlyContinue
    $_ | Out-File "$path\$_.txt"
    Start-Sleep -Seconds 1
}

$files = Get-ChildItem -Path $path -Recurse | Where-Object {-not $_.PsIsContainer}
$keep = 10
if ($files.Count -gt $keep) {
    $files | Sort-Object CreationTime | Select-Object -First ($files.Count - $keep) | Remove-Item -Force -WhatIf
}

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 11/01/2019 12:31

(@leventgenc)
Gönderiler: 18
Eminent Member
Konu başlatıcı
 

Hocam merhaba cevabınız için çok teşekkürler.

Sonuca ulasamadim. 

1 den 20 e kadar txt dosyalari olusturuyor. \\ buna ihtiyacim yok build i Jenkins aliyor.

Sadece jenkinsin olusturdugu KLASÖRleri DATA dosyasında 10 adet olacak sekilde saklamak. 11 oldugunda en tarih olarak eski klasörü silmek istiyorum.

 
Gönderildi : 11/01/2019 13:44

(@eravse)
Gönderiler: 1753
Üye
 

burada zaten bır sılme ıslemı mevcut ama 

elect-Object -First ($files.Count - $keep) conditionu değiştirmeniz kendinize göre uyarlamanız gerekmekte. 
if ($files.Count -gt $keep) {
    $files | Sort-Object CreationTime | Select-Object -First ($files.Count - $keep) | Remove-Item -Force -WhatIf
}

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 17/01/2019 18:22

Hüseyin Çağlar
(@huseyincaglar)
Gönderiler: 31
Trusted Member
 

Selamlar

 

Arkadaşın vermiş olduğu betiği, test klasörünüzde sadece klasörler için şu satırı güncelleyerek dener misiniz?

...

$files = Get-ChildItem -Path $path | Where-Object {$_.PsIsContainer}

...

değiştirerek dener misiniz?

 

Son satırın sonundaki

" -WhatIf" işlemi yapıyormuş gibi size bilgi verecektir ama silme yapmayacaktır.. Sildirme işlemi yapmak istediğinizde bunu kaldırınız  ya da önüne "#" koyunuz.

 

İyi çalışmalar

 

__________________________________ Gelecek, Açık. The Future is Open. https://hcaglar.blogspot.com

 
Gönderildi : 18/01/2019 20:29

Paylaş: