Powershell komutları ile dosya veya Klasör silmek


powershell ile dosya silmek
Powershell birçok script ve yazılım kodlayıcısının en sevmediği script dilidir , gel gelelim Microsoftun dayatmacı yaklaşımı sebebi ile bazı durumlarda mecburen kullanıyoruz. yazılarımızda zaman zaman Powershell


ile ilgili örnekler paylaşıyoruz bu örneklerden bazılarına yazının sonunda yeralan linklerden ulaşabilirsiniz. Her script dilinde temel işlemlerden bir taneside dosya veya klasör silmektir , mesela bir işyerinde Log dosyalarının tutulduğu klasörlerin belirli aralıklarla temizlenmesi gerekebilir bunun için bir script yazıp zamanlanmış görevlerden belirli aralıklarla çalıştırıp silme işlemini otomatik hale getirebiliriz. Peki ama Powershell komutları ile dosya veya klasör silme işlemi nasıl yapılır ?

powershell ile dosya silmek

Powershell komutları ile Dosya silin

Aşağıda örnek olması açısında C:\ dizinine sordum isminde bir klasör oluşturdum ve içerisine a.txt, b.txt , c.txt isminde üç adet dosya ekledim şimdi amacımız "C:\sordum\a.txt" dosyasını Powershell komutları ile sildirmek bunun için :

1. Aramaya Powershell yazıp çıkan Powershell ikonuna sağ tıklayıp yönetici olarak çalıştır diyoruz. uygulayacağımız komut aşağıdaki şekilde olacaktır , ilk komut açıklamadır.

remove-item Dosya yolu
remove-item C:\sordum\a.txt

C:\sordum\a.txt dosyası anında silindi , silinen dosyanın Geri dönüşüm kutusuna gitmediğini aklımızda bulunduralım.

Powershell ile dosya silmek

Powershell komutları ile birden fazla dosyayı aynı anda silin

Eğer birden fazla dosyayı aynı anda silmek istersek bu durumda aşağıdaki komutu kullanmamız gerekecektir

remove-item C:\sordum\a.txt, C:\sordum\b.txt, C:\sordum\c.txt

Komut uygulanır uygulanmaz Sordum klasörü içerisinde .txt dosyalarında komutla belirlediklerimiz anında silinecektir.

Powershell komutu ile birden fazla dosya sildirtmek

Powershell komutları ile belirli uzantılardaki dosyaları silin

Diyelimki Sordum Klasörünün içerisinde birçok dosya türü mevcut , bazıları excel bazıları word bazıları .txt dosyaları biz klasör içerisindeki dosya türlerinden sadece .xlsx olanların silinmesini istiyoruz bu durumda komutu şu şekilde oluşturmamız gerekir.

remove-item C:\sordum\*.xlsx

Komut uygulandığında sordum klasörü içerisindeki tüm .xlsx dosyaları silinecektir.

Powershell komutları ile belirli uzantılardaki dosyaları sildirtmek

Peki ama C dizininde yeralan sordum klasörünü komple silmeye kalksaydık hangi komutu kullanacaktık ?

Powershell komutları ile Klasör silin

Powershell komutları ile Klasör silmek için aşağıdaki komutlardan faydalanabiliriz , ilk komut açıklama ikinci komut uygulamadır.

Remove-Item .\foldertodelete -Force -Recurse
Remove-Item C:\sordum -Force -Recurse

Aslında komut olarak "Remove-Item C:\sordum" Komutunu da kullanabilirdim fakat bu durumda bizden onay isteyecekti o nedenle - Force ve - Recurse parametrelerini kullandık.

powershell ile klasör silmek

Birden fazla klasör silmek için aşağıdaki gibi bir kod kullanılabilir.

Remove-Item -Path "C:\sordum\x", "C:\sordum\y", "C:\sordum\z" -Force -Recurse

-include : silmek istediğiniz dosya veya klasörün isminin içermesi gereken kelimenin bir bölümünü belirtmenize olanak tanır. Burada dikkat edilmesi gereken önemli nokta, verilen adı içeren hem dosya hem de klasörlerin silinmesidir. Örneğin, isminde test sözcüğü geçen tüm klasör ve dosyaları aşağıdaki kod ile silebilirsiniz.

Remove-Item -Path "C:\sordum\*" -Include "*test*" -Force -Recurse

Kod uygulandığında aşağıdaki dosya ve klasörler silinecektir.

powershell ile klasör silmek

-exclude : İsminde belirli bir kelime bulunan klasörler hariç, diğer tüm içerikleri silebiliriz, filtre hem dosyalarda hem de klasörlerde geçerlidir. Mesela isminde test kelimesi geçen dosya ve klasörler hariç diğerlerini sildirmek için gerekli kod aşağıda.

Remove-Item -Path "C:\sordum\*" -Exclude "*test*" -Force -Recurse

Kod uygulandığında aşağıdaki dosya ve klasörler silinecektir.

powershell ile klasör silmek

Belirli tarihten eski dosyaları sildirtin

30 günden daha eski olan tüm klasörleri sildiren kod.

$dateTime = (Get-Date).AddDays(-30)
$path = "C:\sordum\"

Get-ChildItem -Path $Path -Recurse -Directory | Where-Object { $_.LastWriteTime -lt $dateTime } | Remove-Item -Recurse -WhatIf

Üstte uygulanan tüm komutlarda eğer dosya veya klasör bulunamazssa Powershell komutu hata verecektir bu hata ekrana genellikle kırmızı yazı ile yazdırılır.

- Powershell ile windows defendere dışlama eklemek Burada

- Powershell ile windows özelliklerini açıp kapatmak Burada

- Powershell Yetki sorunlarını çözelim Burada

- Powershell komutu ile Sürücü harfi değiştirelim Burada

- Powershell de Çevre değişkeni kullanımı Burada


4 Yorum Var
  1. Avatar for Velociraptor
  2. Avatar for Enver
  3. Avatar for Velociraptor
  4. Avatar for Şükrü Aygın

Yorum Ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Captcha