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 et A différemment. Toutefois, si vous utilisez /i, la recherche ne respecte pas la casse et traite a et A 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 ou CTRL-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)