trouver
Recherche une chaîne de texte dans un ou plusieurs fichiers et affiche les lignes de texte qui contiennent la chaîne spécifiée.
Syntaxe
find [/v] [/c] [/n] [/i] [/off[line]] <"string"> [[<drive>:][<path>]<filename>[...]]
Paramètres
Paramètre | Description |
---|---|
/v | Affiche toutes les lignes qui ne contiennent pas la valeur <string> spécifiée. |
/C | Compte les lignes qui contiennent la valeur <string> spécifiée et affiche le total. |
/n | Fait précéder chaque ligne par le numéro de ligne du fichier. |
/i | Spécifie que la recherche ne respecte pas la casse. |
[/off[line]] | N’ignore pas les fichiers dont l’attribut offline est défini. |
<"string"> |
Obligatoire. Spécifie le groupe de caractères (entre guillemets) que vous souhaitez rechercher. |
[<drive>:][<path>]<filename> |
Spécifie l’emplacement et le nom du fichier dans lequel rechercher la chaîne spécifiée. |
/? | Affiche l'aide à l'invite de commandes. |
Codes de sortie
Code de sortie | Description |
---|---|
0 | La chaîne recherchée a été trouvée |
1 | Chaîne recherchée introuvable |
2 | Fichier recherché introuvable ou commutateur de ligne de commande non valide |
Notes
Si vous n’utilisez pas /i, cette commande recherche exactement ce que vous spécifiez pour string. Par exemple, cette commande traite les caractères
a
etA
différemment. Toutefois, si vous utilisez /i, la recherche ne respecte pas la casse et traitea
etA
comme le même caractère.Si la chaîne que vous souhaitez rechercher contient des guillemets, vous devez utiliser des guillemets doubles pour chaque guillemet contenu dans la chaîne (par exemple, """Cette chaîne contient des guillemets""").
Si vous omettez un nom de fichier, cette commande agit comme un filtre, en prenant l’entrée de la source d’entrée standard (généralement le clavier, un canal (|) ou un fichier redirigé), puis affiche toutes les lignes qui contiennent string.
Pour quitter la recherche de console, utilisez
CTRL-X
ouCTRL-z
.Vous pouvez taper des paramètres et des options de ligne de commande pour la commande find dans n’importe quel ordre.
Vous ne pouvez pas utiliser de caractères génériques (* et ?) dans la chaîne recherchée. Pour rechercher une chaîne avec des caractères génériques et des modèles regex, vous pouvez utiliser la commande FINDSTR.
Si vous utilisez /c et /v dans la même ligne de commande, cette commande affiche le nombre de lignes qui ne contiennent pas la chaîne spécifiée. Si vous spécifiez /c et /n dans la même ligne de commande, find ignore /n.
Cette commande ne reconnaît pas les retours chariot. Lorsque vous utilisez cette commande pour rechercher du texte dans un fichier qui inclut des retours chariot, vous devez limiter la chaîne de recherche au texte qui peut être trouvé entre les retours chariot (autrement dit, une chaîne qui n’est pas susceptible d’être interrompue par un retour chariot). Par exemple, cette commande ne signale pas de correspondance pour la chaîne « tax file » si un retour chariot se produit entre les mots tax et file.
La commande accepte les caractères génériques pour les noms de fichiers. Lors de la recherche dans un fichier (ou des fichiers), le nom de fichier du fichier traité est imprimé, précédé de dix tirets.
La commande Find ne peut pas lire d’autres flux de données. Pour la recherche dans d’autres flux de données, utilisez les commandes findstr, more ou for /f.
Exemples
Pour afficher toutes les lignes de pencil.md qui contiennent la chaîne pencil sharpener, tapez :
find "pencil sharpener" pencil.md
Pour trouver le texte, "The scientists labeled their paper for discussion only. It is not a final report." (y compris les guillemets) dans le fichier report.txt, tapez :
find """The scientists labeled their paper for discussion only. It is not a final report.""" < report.txt
Pour rechercher un ensemble de fichiers, vous pouvez utiliser des caractères génériques. Pour rechercher dans le répertoire actif les fichiers qui ont l’extension .bat et qui contiennent la chaîne PROMPT en ignorant la casse, tapez :
find /i "PROMPT" *.bat
Pour rechercher des noms de fichiers dans un répertoire qui contient la chaîne CPU, utilisez le canal (|) pour diriger la sortie de la commande dir vers la commande find comme suit :
dir c:\temp /s /b | find "CPU"
Recherchez tous les processus en cours d’exécution qui ne contiennent PAS agent :
tasklist | find /v /i "agent"
Vérifiez si un service est en cours d’exécution :
sc query Winmgmt | find "RUNNING" >nul 2>&1 && (echo service is started) || (echo service is stopped)