Cómo hacer una búsqueda simple de archivos en cmd

131

Quiero buscar rápidamente un archivo dado su nombre o parte de su nombre, desde la línea de comandos de Windows (no Power Shell). Esto es similar a abrir el explorador y usar el cuadro de búsqueda en la parte superior.

Nota: dirpuede buscar en base a una plantilla de cadena pero no buscará en los subdirectorios.

Nota 2: findstrse puede usar para buscar un token dentro de los archivos y tiene un indicador de recursividad; Es curioso que se pueda descubrir fácilmente un hallazgo más complejo ...

Bogdan Gavril MSFT
fuente
Posible duplicado de superuser.com/questions/177234/…
maneje el

Respuestas:

175

dir /s *foo* busca en la carpeta y subcarpetas actuales.

Encuentra directorios y archivos.

donde / s significa (documentación) :

/ s Enumera cada aparición del nombre de archivo especificado dentro del directorio especificado y todos los subdirectorios.

Gilles Arcas
fuente
Tengo otra pregunta, ¿cómo copiar estos documentos encontrados a otra carpeta? Muchas gracias
Hong Cheng
@HongCheng Puede usar comodines con Xcopydespués de verificar el resultado con el DIRcomando anterior, ya que usa los mismos xcopy *foo* c:\Temppara encontrar todos los *foo*archivos y copiarlos en el c:\Tempdirectorio
Vinod Srivastav
128
dir /b/s *.txt  

busca todos los archivos txt en el árbol de directorios. Antes de usarlo, simplemente cambie el directorio a root usando

cd/

También puede exportar la lista a un archivo de texto usando

dir /b/s *.exe >> filelist.txt

y buscar usando

type filelist.txt | find /n "filename"

EDITAR 1: Aunque este comando dir funciona desde los viejos tiempos, Win7 agregó algo nuevo llamado Where

where /r c:\Windows *.exe *.dll

buscará exe & dll en la unidad c: \ Windows como sugiere @SPottuit; también puede copiar la salida al portapapeles con

where /r c:\Windows *.exe |clip

solo espere a que aparezca el mensaje y no copie nada hasta entonces.

EDIT 2: si está buscando de forma recursiva y la salida es grande, siempre puede usar morepara habilitar la paginación, se mostrará -- More --en la parte inferior y se desplazará a la página siguiente una vez que presione SPACEo se mueva línea por línea al presionarENTER

where /r c:\Windows *.exe |more

Para obtener más ayuda, intente

where/?
Vinod Srivastav
fuente
55
También puede exportar la lista a su portapapeles reemplazándola >> filelist.txtpor | clip. Más información sobre el uso | el clip .
Sjoerd Pottuit
66
Al agregar /bdetrás dirsolo se devuelve el nombre del archivo o la ruta del archivo (si se busca en varias carpetas) ( b son formato) y no hay detalles del archivo y la carpeta. Al agregar /sdetrás de dirlos directorios s ub también se buscará. Más información sobre el comando dir .
Sjoerd Pottuit
No sé por qué esta no es la respuesta aceptada. Contiene todo lo que tiene y mucho más. Gracias por publicar esto. ¡Ojalá pudiera votar más de una vez!
Avrohom Yisroel
1
uno esperaría que solo cd \ o cd \ cambiaran al directorio raíz, pero parece que cd / también hace el trabajo en Windows 10, aunque no estoy seguro desde qué versión de DOS / Windows es verdad
George Birbilis el
1
@Vinod Srivastav, muy agradable. Todos los escenarios posibles explicados.
Klanto Aguntuk
2

dir *.txt /s /p dará información más detallada

Mullai Nathan
fuente
1
Que detalles /phará una pausa y es lo mismo quewhere /r c:\Windows *.exe /T |more
Vinod Srivastav
0

El problema con DIR es que devolverá respuestas incorrectas. Si está buscando DOC en una carpeta al usarlo DIR *.DOC, también le dará el DOCX . La búsqueda *.HTMtambién dará el HTML y así sucesivamente ...

Hobbe Lundahl
fuente
2
Es por eso que uno debe utilizar DONDE como Where /R c:\ *.DOC *.HTMcon el propósito
Vinod Srivastav
Vinod Srivastav. Lo probé ahora y wow, este trabajo hace maravillas. :) Implementaré esto en mis lotes.
Hobbe Lundahl
0

Puede buscar en Windows por DOS y GUI del explorador.

DOS:

1) DIR

2) ICACLS (busca archivos y carpetas para establecer ACL en ellos)

3) cacls ............................................... ...

2) ejemplo

icacls c: * ntoskrnl *. * / grant system: (f) / c / t, luego use PMON de sysinternals para monitorear qué carpetas tienen acceso denegado. El resultado contiene

ruta de acceso contiene su unidad

el nombre del proceso es explorer.exe

esos eran filtros que debes aplicar

Ali
fuente