Anasayfa » Forum

Windows Otomatik Kl...
 
Bildirimler
Hepsini Temizle

Windows Otomatik Klasör Temizleyen Script

Levent GENÇ
(@leventgenc)
Üye

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. 

 

 

Alıntı
Topic starter Gönderildi : 11/01/2019 11:24
Erdem SELÇUK
(@eravse)
Saygın Üye Forum Yöneticisi

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

CevapAlıntı
Gönderildi : 11/01/2019 12:31
Levent GENÇ
(@leventgenc)
Üye

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.

CevapAlıntı
Topic starter Gönderildi : 11/01/2019 13:44
Erdem SELÇUK
(@eravse)
Saygın Üye Forum Yöneticisi

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

CevapAlıntı
Gönderildi : 17/01/2019 18:22
Hüseyin Çağlar
(@huseyincaglar)
Üye

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

CevapAlıntı
Gönderildi : 18/01/2019 20:29
Paylaş: