PowerShell: Belirli Dize İçermeyen Dosyalar Nasıl Bulunur?
Belirli bir klasörde bulunan ve dosyanın herhangi bir satırında belirli bir dize içermeyen tüm dosyaları bulmak için PowerShell'de aşağıdaki sözdizimini kullanabilirsiniz:
Get-ChildItem | Where-Object { !($_ | Select-String "Mavs") } | Select Name
Bu özel örnek, geçerli dizindeki, dosyanın herhangi bir satırında "Mavs" dizesini içermeyen her dosyanın dosya adlarını döndürecektir.
Çeşitli komutların yaptığı şey:
- Get-ChildItem: Geçerli dizindeki her dosyayı alır
- Nerede-Nesne: Dosyaları bazı koşullara göre filtreler
- !($_ | Select-String “Mavs”): Bir dosyayı yalnızca herhangi bir satırda “Mavs” dizesini içermiyorsa seçer
- Ad Seçin: Yalnızca dosya adını döndürür
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: PowerShell'de Belirli Bir Dize İçermeyen Tüm Dosyaları Bul
Geçerli dizinimizin aşağıdaki üç metin dosyasını içerdiğini varsayalım:
- teams1.txt
- teams2.txt
- teams3.txt
Bu dosyaların her birinin içeriğini görüntülemek için Get-Content cmdlet'ini kullanabiliriz:
Dosyaların her biri çeşitli basketbol takımı isimleri hakkında bilgi içerir.
Dosyanın herhangi bir satırında “Mavs” dizesini içermeyen tüm dosyaları bulmak istediğimizi varsayalım.
Bunu yapmak için aşağıdaki sözdizimini kullanabiliriz:
Get-ChildItem | Where-Object { !($_ | Select-String "Mavs") } | Select Name
Aşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:
Bu, aşağıdaki dosyaları döndürür:
- teams2.txt
- teams3.txt
Bu bize “Mavs” dizisinin bu dosyaların hiçbirinde bulunmadığını söyler.
"Mavs" ifadesini kendi dosyalarınızda aramak istediğiniz başka bir dizeyle değiştirmekten çekinmeyin.
Not: Yalnızca dosya adları yerine dosyaların tam yolunu döndürmek için Ad Seç seçeneğini Tam Ad Seç ile değiştirebilirsiniz.

