Windows Arama · Yerleşik Araçlar

Windows’ta Belirli Bir Metni İçermeyen Dosyalar Nasıl Bulunur

Gerekli bir kelimeyi, ifadeyi, parametreyi veya satırı içermeyen metin dosyalarını, betikleri, günlükleri, yapılandırma dosyalarını ve kaynak dosyalarını bulmak için pratik bir rehber.

⊞ Windows 10 ⊞ Windows 11 PowerShell Komut İstemi Yalnızca yerleşik araçlar

Hızlı Cevap: Belirli Bir Metin Dizesi Olmayan Dosyaları Bulmak İçin PowerShell Kullanın

En güvenilir yerleşik yöntem PowerShell kullanmaktır. Windows Terminal veya PowerShell açın, klasör yolunu değiştirin ve şu komutu çalıştırın:

PowerShell$folder = "C:\Users\User\Documents"
$text = "gerekli metin"

Get-ChildItem -Path $folder -Recurse -File |
Where-Object {
    -not (Select-String -Path $_.FullName -Pattern $text -SimpleMatch -Quiet)
} |
Select-Object FullName
Çıktı, taranan ancak $text içinde saklanan metni içermeyen dosyaları gösterir.
ℹ️
Çoğu kullanıcı için en iyi seçenek Select-String, dosyaların içinde metin aramak için tasarlanmış PowerShell komutudur. -Quiet ile yalnızca eşleşme olup olmadığını döndürür. -not eklemek sonucu tersine çevirir; böylece Windows metnin bulunmadığı dosyaları listeler.

Windows’ta “Metin İçermeyen Dosyalar” Ne Anlama Gelir?

Bu arama türü normal dosya adı aramasından farklıdır. Windows her aday dosyayı açmalı, içeriğini okumalı ve gerekli metnin dosyanın içinde bulunup bulunmadığını kontrol etmelidir.

📄 En iyi çalıştığı dosyalar TXT, LOG, CSV, HTML, CSS, JS, XML, scripts
⚠️ Dikkatli olunması gerekenler PDF, DOCX, arşivler, veritabanları, ikili dosyalar
🧰 Önerilen araç PowerShell
Kural: önce aramayı gerçekten metin tabanlı dosya türleriyle sınırlayın. Tüm diski filtresiz aramak yavaş olabilir ve korumalı ya da ikili dosyalarda hatalar üretebilir.

Uygun adaylar

  • .ini, .conf ve .json gibi yapılandırma dosyaları
  • .html, .css ve .js gibi web sitesi dosyaları
  • Günlükler, betikler, listeler, dışa aktarımlar ve kaynak kodu dosyaları

Uygun olmayan adaylar

  • Resimler, videolar, çalıştırılabilir dosyalar ve sıkıştırılmış arşivler
  • Biçimlendirilmiş belge metnini doğru şekilde aramanız gereken Office belgeleri
  • Erişimin reddedildiği veya dosyaların kilitli olduğu sistem klasörleri

PowerShell Kullanarak Bir Kelimeyi İçermeyen Dosyaları Bulma

Bir kelimeyi, parametreyi, etiketi, sınıf adını, alan adını veya başka bir tam parçayı içermeyen dosyaların temiz bir listesine ihtiyacınız olduğunda bu yöntemi kullanın.

  1. Start düğmesine sağ tıklayın ve Terminal veya PowerShell açın.
  2. $folder içindeki klasör yolunu taramak istediğiniz klasörle değiştirin.
  3. $text değerini eksik olup olmadığını kontrol etmek istediğiniz kelime veya parçayla değiştirin.
  4. Komutu çalıştırın ve oluşan dosya yollarını inceleyin.
PowerShell$folder = "D:\Articles"
$text = "canonical"

Get-ChildItem -Path $folder -Recurse -File |
Where-Object {
    -not (Select-String -Path $_.FullName -Pattern $text -SimpleMatch -Quiet)
} |
Select-Object FullName

Bu örnekte PowerShell, D:\Articles içindeki, canonical metnini içermeyen dosyaları listeler.

Windows’ta Tam Bir İfadeyi İçermeyen Dosyaları Bulma

Tam bir ifade ararken -SimpleMatch kullanmaya devam edin. Bu seçenek Select-String komutuna arama metnini düzenli ifade yerine düz metin olarak işlemesini söyler.

PowerShell$folder = "C:\Users\User\Desktop\Pages"
$text = "İçindekiler"

Get-ChildItem -Path $folder -Recurse -File |
Where-Object {
    -not (Select-String -Path $_.FullName -Pattern $text -SimpleMatch -Quiet)
} |
Select-Object FullName
Bu neden daha güvenli? Başlık, CSS sınıfı, menü etiketi veya alan adı gibi normal metinleri ararken -SimpleMatch kullanın. Bu seçenek olmadan nokta, köşeli parantez ve soru işareti gibi karakterler düzenli ifade sözdizimi olarak yorumlanabilir.

Aramayı Belirli Dosya Türleriyle Sınırlama

Büyük klasörlerde önce dosya uzantılarını filtreleyin. Bu, aramayı hızlandırır ve birçok ikili dosyayı atlamanızı sağlar.

Web sitesi dosyaları: *.html Günlükler: *.log Betikler: *.ps1 Metin dosyaları: *.txt
PowerShell — tek uzantı$folder = "D:\Site"
$text = "style2.css"

Get-ChildItem -Path $folder -Recurse -File -Filter *.html |
Where-Object {
    -not (Select-String -Path $_.FullName -Pattern $text -SimpleMatch -Quiet)
} |
Select-Object FullName

Birden fazla uzantıyı taramak için -Include seçeneğini joker karakterli bir yolla birlikte kullanın:

PowerShell — birden fazla uzantı$folder = "D:\Site\*"
$text = "text-mark"

Get-ChildItem -Path $folder -Recurse -File -Include *.html,*.css,*.js |
Where-Object {
    -not (Select-String -Path $_.FullName -Pattern $text -SimpleMatch -Quiet)
} |
Select-Object FullName
⚠️
Önemli -Include ile D:\Site\* gibi joker karakterli bir yol kullanın. Aksi halde PowerShell, include filtresini beklediğiniz şekilde uygulamayabilir.

Eksik Metin İçin Büyük/Küçük Harfe Duyarlı Arama Yapma

Varsayılan olarak Select-String büyük/küçük harfe duyarlı değildir. Error, ERROR ve error arasında ayrım yapmanız gerekiyorsa -CaseSensitive ekleyin.

PowerShell$folder = "C:\Logs"
$text = "ERROR"

Get-ChildItem -Path $folder -Recurse -File -Filter *.log |
Where-Object {
    -not (Select-String -Path $_.FullName -Pattern $text -SimpleMatch -CaseSensitive -Quiet)
} |
Select-Object FullName

Bu komut, tam olarak büyük harfli ERROR dizesini içermeyen .log dosyalarını listeler.

node_modules, .git, bin veya obj Gibi Klasörleri Hariç Tutma

Projelerde arama yaparken çoğu zaman önbellek, bağımlılık, derleme veya sürüm kontrol klasörlerini atlamanız gerekir. Her dosyayı taramadan önce tam yolu kontrol ederek bunları filtreleyebilirsiniz.

PowerShell$folder = "D:\Project"
$text = "apiKey"
$excluded = "\node_modules\", "\.git\", "\bin\", "\obj\"

Get-ChildItem -Path $folder -Recurse -File -Include *.js,*.json,*.html,*.css |
Where-Object {
    $file = $_.FullName
    -not ($excluded | Where-Object { $file -like "*$_*" })
} |
Where-Object {
    -not (Select-String -Path $_.FullName -Pattern $text -SimpleMatch -Quiet)
} |
Select-Object FullName

Bu yöntem web sitesi klasörleri, yazılım projeleri, dışa aktarılmış dokümantasyon ve büyük metin dosyası arşivleri için kullanışlıdır.

Komut İstemi ve findstr Kullanarak Metni İçermeyen Dosyaları Bulma

findstr metin içeren dosyaları bulabilir, ancak özyinelemeli aramalarda doğrudan temiz bir “bu metni içermeyen dosyalar” listesi üretmez. Pratik yerleşik çözüm, iki liste oluşturup bunları PowerShell ile karşılaştırmaktır.

Adım 1

Tüm aday dosyaların listesini oluşturun

Kontrol etmek istediğiniz uzantıya sahip dosyaları listelemek için dir kullanın.

Adım 2

Eşleşen dosyaların listesini oluşturun

Metnin bulunduğu dosyaları listelemek için findstr komutunu /m ile kullanın.

Adım 3

İki listeyi karşılaştırın

İlk listede olup ikinci listede olmayan dosyaları göstermek için PowerShell kullanın.

Komut İstemicd /d D:\Articles

dir /b /s *.html > all-files.txt
findstr /m /s /i /c:"İçindekiler" *.html > files-with-text.txt
powershell -NoProfile -Command "$all=Get-Content .\all-files.txt; $yes=Get-Content .\files-with-text.txt; Compare-Object $all $yes | Where-Object SideIndicator -eq '<=' | Select-Object -ExpandProperty InputObject"
💡
Ne zaman kullanılmalı? findstr yöntemini zaten Komut İstemi içinde çalışıyorsanız kullanın. Yeni görevler için saf PowerShell yöntemi daha kısa ve bakımı daha kolaydır.

Dosya Gezgini Metin İçermeyen Dosyaları Bulabilir mi?

Dosya Gezgini bu görev için en iyi araç değildir. Dosya adlarını ve dizine eklenmiş içerikleri arayabilir, ancak güvenilir bir özyinelemeli “içeriğinde bu metin olmayan dosyaları göster” araması PowerShell ile daha iyi yapılır.

Araç Ne için iyi? Zayıf nokta
Dosya Gezgini Dosya adlarını ve dizine eklenmiş içeriği hızlıca arama. Eksiksiz bir “metin içermiyor” içerik denetimi için güvenilir değildir.
PowerShell Gerçek dosya içeriklerini özyinelemeli tarama ve sonuçları filtreleme. Komut gerektirir ve çok büyük klasörlerde yavaş olabilir.
findstr Simple Komut İstemi searches in plain text files. Ters aramalar ve karmaşık filtreleme için daha az kullanışlıdır.

Yalnızca bir kelimeyi içeren dosyalara ihtiyacınız varsa Dosya Gezgini yeterli olabilir. Kelimenin eksik olduğu dosyalara ihtiyacınız varsa PowerShell kullanın.

Sorun giderme PowerShell Searches for Files Missing Text

Erişim reddedildi hataları

Önce kendi belge, proje veya web sitesi klasörlerinizde arama yapın. PowerShell’i yönetici olarak açmadıkça ve korumalı klasörlerde hata almayı beklemedikçe tüm C:\ sürücüsünü taramaktan kaçının.

PowerShell — erişim ve okuma hatalarını bastırmaGet-ChildItem -Path "C:\Users\User\Documents" -Recurse -File -ErrorAction SilentlyContinue |
Where-Object {
    -not (Select-String -Path $_.FullName -Pattern "gerekli metin" -SimpleMatch -Quiet -ErrorAction SilentlyContinue)
} |
Select-Object FullName

Komut çok yavaş

Metin özel karakterler içeriyor

-SimpleMatch seçeneğini açık bırakın. Bu, URL’ler, CSS seçicileri, kayıt defteri benzeri dizeler, kod parçacıkları ve nokta içeren dosya adları gibi metin parçaları için özellikle önemlidir.

SSS: Windows’ta Metin İçermeyen Dosyaları Bulma

Q Metin içermeyen dosyaları bulmak için en iyi yerleşik Windows aracı nedir?
PowerShell en iyi yerleşik araçtır; çünkü dosyaları özyinelemeli olarak listeleyebilir, içeriklerini Select-String ile okuyabilir ve ardından eşleşmeyi -not ile tersine çevirebilir.
Q Aynı anda birkaç eksik kelimeyi arayabilir miyim?
Evet. Basit durumlarda birkaç deseni bir diziye koyun, örneğin $patterns = "word1", "word2", ardından $patterns değerini -Pattern parametresine verin. Tüm gerekli kelimeleri eksik olan dosyalara veya gerekli kelimelerden herhangi biri eksik olan dosyalara ihtiyacınız varsa mantığı buna göre ayarlayın.
Q Bu yöntem PDF veya Word belgelerinde çalışır mı?
Burada gösterilen basit komutlarla güvenilir şekilde çalışmaz. Select-String metin akışları ve düz metin dosyaları için tasarlanmıştır. PDF, DOCX ve benzeri biçimler özel ayrıştırma veya arama araçları gerektirir.
Q Bazı dosyalarda neden okunamayan çıktı veya yanlış sonuçlar alıyorum?
Dosya ikili, sıkıştırılmış, şifrelenmiş, farklı kodlanmış olabilir veya aslında düz metin olmayabilir. Aramayı .txt, .log, .html, .css, .js, .xml ve .json gibi bilinen metin uzantılarıyla sınırlayın.
Q Sonucu bir metin dosyasına kaydedebilir miyim?
Evet. Listeyi kaydetmek için PowerShell komutunun sonuna | Out-File missing-text-files.txt -Encoding UTF8 ekleyin.

Sonuç

Windows’ta belirli bir metni içermeyen dosyaları bulmak için Select-String ile PowerShell kullanın. Bu yöntem klasör, dosya uzantıları, ifade eşleştirme, büyük/küçük harf duyarlılığı ve hariç tutulan klasörler üzerinde doğrudan kontrol sağlar.

Ada veya dizine eklenmiş içeriğe göre hızlı aramalar için Dosya Gezgini kullanın; ancak gerekli bir kelimenin, ifadenin, başlığın, etiketin veya yapılandırma satırının eksik olduğu dosyaların güvenilir bir listesi gerektiğinde PowerShell kullanın.