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.
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
$text.
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 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.
.ini, .conf et .json.html, .css et .jsUtilisez 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.
$folder par le dossier à analyser.$text par le mot ou le fragment dont vous voulez vérifier l’absence.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.
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
-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.
Pour les grands dossiers, filtrez d’abord les extensions. La recherche sera plus rapide et évitera beaucoup de fichiers binaires.
*.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
-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.
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.
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.
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.
Utilisez dir pour lister les fichiers avec l’extension à vérifier.
Utilisez findstr avec /m pour lister les fichiers où le texte existe.
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"
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 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.
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
-Filter ou -Include pour limiter les extensions de fichiers.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.
Select-String, puis inverser la correspondance avec -not.
$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.
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.
.txt, .log, .html, .css, .js, .xml et .json.
| Out-File missing-text-files.txt -Encoding UTF8 à la fin de la commande PowerShell pour enregistrer la liste.
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.