Recherche Windows · Outils intégrés

Comment trouver les fichiers qui ne contiennent pas un texte précis dans Windows

Un guide pratique pour repérer les fichiers texte, scripts, journaux, fichiers de configuration et fichiers source qui ne contiennent pas un mot, une expression, un paramètre ou une ligne requis.

⊞ Windows 10 ⊞ Windows 11 PowerShell Invite de commandes Outils intégrés uniquement

Réponse rapide : utilisez PowerShell pour trouver les fichiers sans une chaîne de texte donnée

La méthode intégrée la plus fiable est PowerShell. Ouvrez Windows Terminal ou PowerShell, modifiez le chemin du dossier, puis exécutez cette commande :

PowerShell$folder = "C:\Users\User\Documents"
$text = "texte requis"

Get-ChildItem -Path $folder -Recurse -File |
Where-Object {
    -not (Select-String -Path $_.FullName -Pattern $text -SimpleMatch -Quiet)
} |
Select-Object FullName
La sortie affiche les fichiers qui ont été analysés mais qui ne contiennent pas le texte stocké dans $text.
ℹ️
Idéal pour la plupart des utilisateurs Select-String est la commande PowerShell conçue pour rechercher du texte dans les fichiers. Avec -Quiet, elle indique seulement si une correspondance existe. L’ajout de -not inverse le résultat, ce qui permet à Windows de lister les fichiers dans lesquels le texte n’a pas été trouvé.

Ce que signifie « fichiers qui ne contiennent pas de texte » dans Windows

Ce type de recherche est différent d’une recherche normale par nom de fichier. Windows doit ouvrir chaque fichier candidat, lire son contenu et vérifier si le texte requis s’y trouve.

📄 Fonctionne mieux avec TXT, LOG, CSV, HTML, CSS, JS, XML, scripts
⚠️ Soyez prudent avec PDF, DOCX, archives, bases de données, fichiers binaires
🧰 Outil recommandé PowerShell
Règle : limitez d’abord la recherche aux types de fichiers réellement textuels. Rechercher sur tout un disque sans filtres peut être lent et générer des erreurs sur des fichiers protégés ou binaires.

Bons candidats

  • Fichiers de configuration comme .ini, .conf et .json
  • Fichiers de site web comme .html, .css et .js
  • Journaux, scripts, listes, exports et fichiers de code source

Mauvais candidats

  • Images, vidéos, exécutables et archives compressées
  • Documents Office lorsque vous devez rechercher précisément le texte formaté du document
  • Dossiers système où l’accès est refusé ou les fichiers sont verrouillés

Trouver les fichiers qui ne contiennent pas un mot avec PowerShell

Utilisez cette méthode lorsque vous avez besoin d’une liste propre de fichiers qui ne contiennent pas un mot, un paramètre, une balise, un nom de classe, un domaine ou un autre fragment exact.

  1. Faites un clic droit sur Démarrer et ouvrez Terminal ou PowerShell.
  2. Remplacez le chemin du dossier dans $folder par le dossier à analyser.
  3. Remplacez la valeur dans $text par le mot ou le fragment dont vous voulez vérifier l’absence.
  4. Exécutez la commande et examinez les chemins de fichiers obtenus.
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

Dans cet exemple, PowerShell liste les fichiers situés dans D:\Articles qui ne contiennent pas le texte canonical.

Trouver les fichiers qui ne contiennent pas une expression exacte dans Windows

Pour une expression exacte, conservez -SimpleMatch. Ce paramètre indique à Select-String de traiter le texte recherché comme du texte littéral, et non comme une expression régulière.

PowerShell$folder = "C:\Users\User\Desktop\Pages"
$text = "Table des matières"

Get-ChildItem -Path $folder -Recurse -File |
Where-Object {
    -not (Select-String -Path $_.FullName -Pattern $text -SimpleMatch -Quiet)
} |
Select-Object FullName
Pourquoi c’est plus sûr Utilisez -SimpleMatch lorsque vous recherchez du texte normal, par exemple un titre, une classe CSS, un libellé de menu ou un nom de domaine. Sans ce paramètre, des caractères comme les points, crochets et points d’interrogation peuvent être interprétés comme une syntaxe d’expression régulière.

Limiter la recherche à certains types de fichiers

Pour les grands dossiers, filtrez d’abord les extensions. La recherche sera plus rapide et évitera beaucoup de fichiers binaires.

Fichiers web : *.html Journaux : *.log Scripts : *.ps1 Fichiers texte : *.txt
PowerShell — une extension$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

Pour analyser plusieurs extensions, utilisez -Include avec un chemin contenant un caractère générique :

PowerShell — plusieurs extensions$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
⚠️
Important Avec -Include, utilisez un chemin avec caractère générique comme D:\Site\*. Sinon, PowerShell peut ne pas appliquer le filtre d’inclusion comme vous l’attendez.

Lancer une recherche sensible à la casse pour le texte manquant

Par défaut, Select-String n’est pas sensible à la casse. Si vous devez distinguer Error, ERROR et error, ajoutez -CaseSensitive.

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

Cette commande liste les fichiers .log qui ne contiennent pas la chaîne exacte en majuscules ERROR.

Exclure des dossiers comme node_modules, .git, bin ou obj

Lorsque vous recherchez dans des projets, vous devez souvent ignorer les dossiers de cache, dépendances, compilation ou contrôle de version. Vous pouvez les filtrer en vérifiant le chemin complet avant d’analyser chaque fichier.

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

C’est utile pour les dossiers de sites web, les projets logiciels, la documentation exportée et les grandes archives de fichiers texte.

Trouver les fichiers sans texte avec l’Invite de commandes et findstr

findstr peut trouver les fichiers qui contiennent du texte, mais il ne produit pas directement une liste propre des « fichiers sans ce texte » pour les recherches récursives. Une solution intégrée pratique consiste à créer deux listes et à les comparer avec PowerShell.

Étape 1

Créer une liste de tous les fichiers candidats

Utilisez dir pour lister les fichiers avec l’extension à vérifier.

Étape 2

Créer une liste des fichiers correspondants

Utilisez findstr avec /m pour lister les fichiers où le texte existe.

Étape 3

Comparer les deux listes

Utilisez PowerShell pour afficher les fichiers présents dans la première liste mais absents de la seconde.

Invite de commandescd /d D:\Articles

dir /b /s *.html > all-files.txt
findstr /m /s /i /c:"Table des matières" *.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"
💡
Quand l’utiliser Utilisez la méthode findstr si vous travaillez déjà dans l’Invite de commandes. Pour les nouvelles tâches, la méthode entièrement basée sur PowerShell est plus courte et plus facile à maintenir.

L’Explorateur de fichiers peut-il trouver les fichiers qui ne contiennent pas de texte ?

L’Explorateur de fichiers n’est pas le meilleur outil pour cette tâche. Il peut rechercher les noms de fichiers et le contenu indexé, mais une recherche récursive fiable du type « montrez-moi les fichiers dont le contenu n’inclut pas ce texte » se fait mieux avec PowerShell.

Outil Utile pour Point faible
Explorateur de fichiers Rechercher rapidement des noms de fichiers et du contenu indexé. Pas fiable pour un audit complet du contenu « ne contenant pas de texte ».
PowerShell Analyser récursivement le contenu réel des fichiers et filtrer les résultats. Nécessite une commande et peut être lent sur de très grands dossiers.
findstr Recherches simples dans l’Invite de commandes pour des fichiers texte brut. Moins pratique pour les recherches inversées et le filtrage complexe.

Si vous devez seulement trouver les fichiers qui contiennent un mot, l’Explorateur de fichiers peut suffire. Si vous avez besoin des fichiers où ce mot est absent, utilisez PowerShell.

Dépannage des recherches PowerShell de fichiers avec texte manquant

Erreurs d’accès refusé

Recherchez d’abord dans vos propres dossiers de documents, de projets ou de sites web. Évitez d’analyser tout le disque C:\, sauf si vous ouvrez PowerShell en tant qu’administrateur et acceptez que des dossiers protégés produisent des erreurs.

PowerShell — ignorer les erreurs d’accès et de lectureGet-ChildItem -Path "C:\Users\User\Documents" -Recurse -File -ErrorAction SilentlyContinue |
Where-Object {
    -not (Select-String -Path $_.FullName -Pattern "texte requis" -SimpleMatch -Quiet -ErrorAction SilentlyContinue)
} |
Select-Object FullName

La commande est trop lente

Le texte contient des caractères spéciaux

Gardez -SimpleMatch activé. C’est particulièrement important pour les fragments de texte comme les URL, sélecteurs CSS, chaînes ressemblant à des clés de registre, extraits de code et noms de fichiers contenant des points.

FAQ : trouver les fichiers qui ne contiennent pas de texte dans Windows

Q Quel est le meilleur outil intégré de Windows pour trouver les fichiers qui ne contiennent pas de texte ?
PowerShell est le meilleur outil intégré, car il peut lister les fichiers récursivement, lire leur contenu avec Select-String, puis inverser la correspondance avec -not.
Q Puis-je rechercher plusieurs mots manquants à la fois ?
Oui. Pour les cas simples, placez plusieurs modèles dans un tableau, par exemple $patterns = "mot1", "mot2", puis passez $patterns à -Pattern. Si vous avez besoin des fichiers auxquels il manque tous les mots requis ou auxquels il manque n’importe lequel d’entre eux, adaptez la logique en conséquence.
Q Est-ce que cela fonctionne avec les PDF ou les documents Word ?
Pas de manière fiable avec les commandes simples présentées ici. Select-String est conçu pour les flux de texte et les fichiers texte brut. Les formats PDF, DOCX et similaires nécessitent des outils de recherche ou d’analyse spécialisés.
Q Pourquoi est-ce que j’obtiens une sortie illisible ou de faux résultats dans certains fichiers ?
Le fichier peut être binaire, compressé, chiffré, encodé différemment ou ne pas être du texte brut. Limitez la recherche aux extensions textuelles connues comme .txt, .log, .html, .css, .js, .xml et .json.
Q Puis-je enregistrer le résultat dans un fichier texte ?
Oui. Ajoutez | Out-File missing-text-files.txt -Encoding UTF8 à la fin de la commande PowerShell pour enregistrer la liste.

Conclusion

Pour trouver les fichiers qui ne contiennent pas un texte précis dans Windows, utilisez PowerShell avec Select-String. Cette méthode vous donne un contrôle direct sur le dossier, les extensions, la correspondance d’expression, la sensibilité à la casse et les dossiers exclus.

Utilisez l’Explorateur de fichiers pour des recherches rapides par nom ou par contenu indexé, mais utilisez PowerShell lorsque vous avez besoin d’une liste fiable des fichiers où un mot, une expression, un titre, une balise ou une ligne de configuration requis est absent.