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-ItemAş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.

