Búsqueda de archivos

Mantenido el

En el Símbolo del sistema, el comando que conviene usar para buscar archivos depende de lo que quieras encontrar.

En resumen: para buscar por nombre de archivo usa dir /s /b, y para buscar por el contenido del archivo usa findstr /s /i /m.

Buscar_por_nombre_de_archivo
dir /s /b "C:\work\*.pdf"
Buscar_por_contenido_del_archivo
cd /d "C:\work"
findstr /s /i /m "factura" *.txt

Qué método de búsqueda usar

Lo que quieres buscarComando que se usa
Por nombre de archivo o extensióndir /s /b
Varios patrones a la vezwhere /R
Por el texto que contiene el archivofindstr /s /i /m
Filtrando por fecha de modificaciónforfiles /D
Procesar en orden los archivos encontradosfor /r

Buscar por nombre de archivo (dir /s /b)

Si añades a dir las opciones /s (incluye también las subcarpetas) y /b (muestra solo la ruta), se muestra una lista con la ruta completa de los archivos que cumplen la condición.

Buscar_PDF_dentro_de_C:\work
dir /s /b "C:\work\*.pdf"
- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>dir /s /b "C:\work\*.pdf"
C:\work\invoice.pdf
C:\work\2026\report.pdf
C:\work\2026\archive\manual.pdf
C:\users\user>

Si solo conoces una parte del nombre del archivo, añade * al principio y al final.

Buscar_archivos_y_carpetas_cuyo_nombre_contiene_report
dir /s /b "C:\work\*report*"
Cuando dir no encuentra resultados

Si no hay ningún archivo que cumpla la condición, dir muestra “No se encuentra el archivo” y normalmente devuelve el código de salida (ERRORLEVEL) 1. Puedes aprovecharlo en un archivo por lotes para saber si se encontró algo o no, pero si encadenas la salida con una tubería, como en dir ... | findstr, el ERRORLEVEL será el del último findstr ejecutado.

Buscar solo carpetas

Con /ad solo se buscan carpetas (directorios).

Buscar_carpetas_cuyo_nombre_contiene_backup
dir /s /b /ad "C:\work\*backup*"

Buscar solo archivos

Con /a-d se excluyen las carpetas y solo se buscan archivos.

Buscar_solo_archivos
dir /s /b /a-d "C:\work\*report*"
*.htm a veces también coincide con *.html

Los comodines con una extensión de 3 caracteres (como *.htm) pueden coincidir también con archivos cuya extensión tiene 4 o más caracteres (como .html) por el efecto de los nombres cortos en formato 8.3. Si necesitas distinguirlos con exactitud, filtra el resultado con findstr (por ejemplo: dir /s /b "C:\work\*.htm" | findstr /i "\.htm$"). Para más detalles, consulta

.

Filtrar más los resultados de la búsqueda

Si pasas el resultado de dir /s /b a findstr mediante una tubería, solo se conservan las rutas que contienen un texto determinado.

Buscar_PDF_cuya_ruta_contiene_2026
dir /s /b "C:\work\*.pdf" | findstr /i "2026"

Sin embargo, con este método también se evalúan los nombres de las carpetas. Si quieres filtrar solo por el nombre del archivo, lo más seguro es indicarlo con el comodín del propio dir.

Buscar con where /R

where /R busca de forma recursiva dentro de la carpeta indicada y muestra la ruta completa de los archivos encontrados.

where /R "C:\work" *.pdf

Se obtiene un resultado casi idéntico al de dir /s /b. Una característica de where es que permite indicar varios patrones separados por espacios.

Buscar_a_la_vez_PDF_y_archivos_de_Word
where /R "C:\work" *.pdf *.docx
En PowerShell escribe where.exe

En PowerShell, where es un alias de Where-Object, así que ejecútalo con la extensión, como en where.exe /R "C:\work" *.pdf.

Para más información sobre where, consulta

.

Buscar por el contenido del archivo (findstr)

Cuando quieres buscar no por el nombre del archivo, sino por “el texto escrito dentro del archivo”, usa findstr.

Buscar_"factura"_en_los_archivos_de_texto_dentro_de_C:\work
cd /d "C:\work"
findstr /s /i /m "factura" *.txt
OpciónSignificado
/sIncluye la carpeta actual (o la carpeta indicada en la ruta) y sus subcarpetas
/iNo distingue entre mayúsculas y minúsculas
/mMuestra solo el nombre del archivo, no las líneas coincidentes
/nMuestra también el número de las líneas coincidentes

Si quitas /m, también se muestra el contenido de las líneas que coinciden.

- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>findstr /s /i /n "error" *.log
app.log:12:2026-11-01 10:23:45 ERROR connection failed
logs\old.log:304:error code: 500
C:\users\user>
おすすめ書籍※ 広告を含む場合があります
中小企業経営者のためのRPA入門 RPA導入を成功させる方法

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

No se puede buscar dentro de Word, Excel ni PDF

findstr solo busca correctamente en archivos de texto (.txt, .log, .csv, .bat, código fuente, etc.). Word (.docx), Excel (.xlsx) y PDF tienen un formato comprimido o propio, por lo que el texto de su interior no se encuentra correctamente.

Atención a la codificación de caracteres

findstr no puede buscar en archivos UTF-16. Incluso en archivos UTF-8, es posible que no encuentre el texto en japonés si no coincide con la página de códigos de la consola (por defecto, 932). Si no se encuentra un texto en japonés, comprueba la codificación del archivo. La codificación de caracteres se explica en

.

Para más información sobre findstr, consulta

.

Buscar filtrando por fecha de modificación (forfiles)

Cuando quieras filtrar por fecha de modificación, por ejemplo “archivos de registro modificados hace 30 días o más”, forfiles resulta útil.

Mostrar_los_archivos_.log_modificados_hace_30_días_o_más
forfiles /P "C:\work" /S /M *.log /D -30 /C "cmd /c echo @path"

/D -30 significa “modificados hace 30 días o antes”. @path es la ruta completa del archivo encontrado, que se muestra entre comillas, como "C:\work\a.log" (si solo quieres el nombre del archivo, usa @file). Si no hay ningún archivo que cumpla la condición, forfiles muestra un mensaje de error y devuelve el código de salida 1.

Para más detalles, consulta

.

Guardar los resultados de la búsqueda en un archivo

Si hay muchos resultados, guardarlos en un archivo de texto mediante redirección facilita revisarlos.

Guardar_los_resultados_en_result.txt
dir /s /b "C:\work\*.pdf" > result.txt
Revisa el resultado en el Bloc de notas

Puedes abrir el result.txt guardado con notepad result.txt. Una lista larga se lee mejor en un editor que desplazándose por la pantalla.

Para la redirección, consulta

.

Procesar en un archivo por lotes los archivos encontrados

Si quieres hacer algo con los archivos encontrados, puedes usar for /r.

Mostrar_en_orden_los_archivos_.log_dentro_de_C:\work
@echo off
for /r "C:\work" %%f in (*.log) do (
    echo %%f
)

Si lo escribes directamente en el Símbolo del sistema, usa %f en lugar de %%f.

Si combinas for /f con dir, puedes procesar de uno en uno los resultados filtrados con las opciones de dir.

Procesar_de_uno_en_uno_los_resultados_filtrados_con_dir
@echo off
for /f "delims=" %%f in ('dir /s /b /a-d "C:\work\*report*" 2^>nul') do (
    echo Se encontró: %%f
)

delims= se deja vacío para recibir la línea completa tal cual, aunque la ruta contenga espacios. 2^>nul evita que se muestre el mensaje de error cuando no se encuentra nada.

Abrir en el Explorador la ubicación del archivo encontrado

Si ejecutas explorer /select,"C:\work\2026\report.pdf", se abre el Explorador con ese archivo seleccionado.

Resumen

  • Para buscar por nombre de archivo: dir /s /b "carpeta\patrón"
  • Para buscar por el contenido del archivo: findstr /s /i /m "texto" patrón
  • where /R carpeta patrón también permite la búsqueda recursiva por nombre de archivo
  • Para filtrar por fecha de modificación: forfiles /D
  • Los resultados se pueden guardar con > result.txt y procesar de uno en uno con for /r o for /f
  • El contenido de Word, Excel y PDF no se puede buscar con findstr

Artículos relacionados

Preguntas de práctica

Problema de práctica

¿Cuál muestra únicamente la ruta completa de los archivos con extensión .csv dentro de C:\work, incluidas sus subcarpetas?

Elige una respuesta.

  1. dir "C:\work\*.csv"
  2. dir /s /b "C:\work\*.csv"
  3. findstr /s ".csv" "C:\work"

Problema de práctica

¿Cuál muestra solo el nombre de los archivos de texto de la carpeta actual y sus subcarpetas que contienen “error”, sin distinguir mayúsculas de minúsculas?

Elige una respuesta.

  1. dir /s /b error*.txt
  2. findstr /s /i /m "error" *.txt
  3. where /R . error
#Símbolo del sistema #Archivo por lotes #Búsqueda de archivos #dir #findstr #where