find

Busca una cadena de texto en un archivo o archivos y muestra líneas de texto que contienen la cadena especificada.

Sintaxis

find [/v] [/c] [/n] [/i] [/off[line]] <"string"> [[<drive>:][<path>]<filename>[...]]

Parámetros

Parámetro Descripción
/v Muestra todas las líneas que no contienen el <string> especificado.
/C Cuenta las líneas que contienen el <string> especificado y muestra el total.
/n Precede a cada línea con el número de línea del archivo.
/i Especifica que la búsqueda no distingue mayúsculas de minúsculas.
[/off[line]] No omite los archivos que tienen establecido el atributo sin conexión.
<"string"> Necesario. Especifica el grupo de caracteres (entre comillas) que desea buscar.
[<drive>:][<path>]<filename> Especifica la ubicación y el nombre del archivo en el que se va a buscar la cadena especificada.
/? Muestra la ayuda en el símbolo del sistema.

Códigos de salida

Código de salida Descripción
0 Se encontró la cadena buscada.
1 Cadena buscada no encontrada
2 No se encontró el archivo buscado o se ha especificado un modificador de línea de comandos no válido

Comentarios

  • Si no usa /i, este comando busca exactamente lo que especifique para la cadena. Por ejemplo, este comando trata los caracteres a y A de forma diferente. Sin embargo, si usa /i, la búsqueda no distingue mayúsculas de minúsculas y trata a y A como el mismo carácter.

  • Si la cadena que desea buscar contiene comillas, debe usar comillas dobles para cada comilla contenida en la cadena (por ejemplo, """Esta cadena contiene comillas""").

  • Si omite un nombre de archivo, este comando actúa como filtro, tomando la entrada del origen de entrada estándar (normalmente el teclado, una pleca (|) o un archivo redirigido) y, a continuación, muestra las líneas que contienen la cadena.

  • Para salir de la búsqueda de la consola, use CTRL-X o CTRL-z.

  • Puede escribir parámetros y opciones de línea de comandos para el comando find en cualquier orden.

  • No puede usar caracteres comodín (* y ?) en la cadena buscada. Para buscar una cadena con caracteres comodín y patrones regex, puede usar el comando FINDSTR.

  • Si usa /c y /v en la misma línea de comandos, este comando muestra un recuento de las líneas que no contienen la cadena especificada. Si especifica /c y /n en la misma línea de comandos, find ignora /n.

  • Este comando no reconoce los retornos de carro. Cuando use este comando para buscar texto en un archivo que incluya retornos de carro, debe limitar la cadena de búsqueda al texto que se puede encontrar entre retornos de carro (es decir, una cadena que no es probable que se interrumpa por un retorno de carro). Por ejemplo, este comando no notifica una coincidencia para el archivo de impuesto de cadena si se produce una devolución de carro entre las palabras impuesto y archivo.

  • El comando acepta caracteres comodín para los nombres de archivo. Al buscar en archivo (o archivos), imprimirá el archivo del archivo procesado precedido de diez guiones.

  • El comando find no puede leer flujos de datos alternativos. Para buscar en flujos de datos alternativos, use los comandos findstr, more o for /f.

Ejemplos

Para mostrar todas las líneas de pencil.md que contienen el tipo de cadena sacapuntas, escriba:

find "pencil sharpener" pencil.md

Para encontrar el texto, “Los científicos etiquetaron su documento solo para la discusión. No es un informe final.” (incluidas las comillas) en el archivo report.txt, escriba:

find """The scientists labeled their paper for discussion only. It is not a final report.""" < report.txt

Para buscar un conjunto de archivos, puede usar caracteres comodín. Para buscar en el directorio actual los archivos que tienen la extensión .bat y que contienen la cadena PROMPT ignorando el caso, escriba:

find /i "PROMPT" *.bat

Para buscar nombres de archivos en un directorio que contenga la cadena CPU, use la pleca (|) para dirigir la salida del comando dir al comando find de la siguiente manera:

dir c:\temp /s /b | find "CPU"

Busque todos los procesos en ejecución que NO contengan el agente:

tasklist | find /v /i "agent"

Compruebe si un servicio se está ejecutando:

sc query  Winmgmt | find "RUNNING" >nul 2>&1 && (echo service is started) || (echo service is stopped)