PowerShell: Belirli Bir Desenle Eşleşen Dosyalar Nasıl Silinir


Adı belirli bir kalıpla eşleşen bir dizindeki tüm dosyaları silmek için PowerShell'de aşağıdaki sözdizimini kullanabilirsiniz:

Get-ChildItem $Path | Where{$_.Name -Match "new"} | Remove-Item

Bu özel örnek, geçerli dizinde, dosya adının herhangi bir yerinde "yeni" dizesini içeren tüm dosyaları siler.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

İlgili: PowerShell'de Belirli Uzantıya Sahip Tüm Dosyalar Nasıl Silinir?

Örnek: PowerShell Kullanılarak Belirli Bir Modelle Eşleşen Tüm Dosyalar Nasıl Silinir?

Geçerli dizinimizin aşağıdaki yola sahip olduğunu varsayalım:

C:\Users\bobbi\OneDrive\Documents\test_data

Bu geçerli dizindeki tüm dosyaları listelemek için Dir yazabiliriz:

Bu dizinde dört dosya olduğunu görebiliriz:

  • my_data.txt
  • my_newest_data.txt
  • new_data.txt
  • some_old_data.txt

Dosya adında "yeni" geçen tüm dosyaları silmek istediğimizi varsayalım.

Bunu yapmak için aşağıdaki sözdizimini kullanabiliriz:

Get-ChildItem $Path | Where{$_.Name -Match "new"} | Remove-Item

Aşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:

Dizindeki, dosya adında bir yerde "yeni" yazan iki dosyayı başarıyla silebildiğimizi görebiliriz:

  • my_newest_data.txt
  • new_data.txt

Dir komutunu tekrar çalıştırdığımızda isminde “new” olmayan iki dosyaya dokunulmadığını gördük.

Not: PowerShell'deki Match ifadesi büyük/küçük harfe duyarlıdır. Örneğin, bunun yerine “YENİ” diye arasaydık, dosya adında “yeni” bulunan iki dosya yine de silinmiş olurdu.

İlgili makaleler