Listar todos los archivos en todas las subcarpetas

33

En Windows, ¿hay alguna forma de obtener una lista de todos los archivos de una carpeta, incluidos todos los archivos de todas las subcarpetas?

Edward Wong Hau Pepelu Tivrusk
fuente

Respuestas:

37

Listar todos los archivos recursivamente

C: \> dir / s

Para guardarlos en un archivo

C: \> dir / s /b>filelist.txt

Míralos página por página

C: \> dir / s | Más

Nifle
fuente
3
Bueno, está bien ... Esto también funcionará. Solo me pregunto por qué nadie usa la función de búsqueda estándar de Windows para esto. :-)
Wim ten Brink
2
@Workshop Alex: Porque 1) recursivo dires solo un poco más rápido si no tiene que verificar ninguna condición; 2) te permite guardar los nombres en un archivo.
Grawity
44
@WimtenBrink: ¿y cómo vas a enviar la búsqueda de Windows a otro usuario?
Adolf ajo
1
No necesita canalizar más, solo necesita el
modificador
3
Como la pregunta no menciona directorios, debería serlo dir /a-d /b /s.
jiggunjer
15

Prueba árbol / f. Esto debería generar la estructura completa.

alex
fuente
1
Que se mostrará como un árbol, no como una lista.
Joey
¿No crees que el OP consideraría ese resultado como una lista?
hyperslug
2
Pensé que el comando de árbol tendría el mejor formato, permitiéndole ver claramente el nivel de las subcarpetas.
alex
Tiene la mejor estructura. ¿Se puede guardar como un archivo de texto o un archivo html?
xypha
Probé tree /f>filelist.txty funcionó.
xypha
5

Obtendrá UnixUtils en sourceforge , eso le dará find.exe.

A continuación, puede hacer lo siguiente para obtener una lista de todos los archivos con rutas de carpeta.

cd Path\to\folder
find.exe . -type f

Hay otras formas del comando Unix que pueden ser útiles para usted.
El resultado es más apto para búsquedas en comparación con el nativo diry los treecomandos.


Actualizado con entrada de Johannes.
En la cmd.execáscara

dir /b /s

funciona bastante bien para una lista recursiva en el formato con formato de Viudas
(para que vea " C:\" y las barras diagonales inversas " \').
¡Perdí completamente el " \b" en Niflela respuesta! (+1 por eso ahora).

nik
fuente
No es necesario instalar nada aquí, ya que dires perfectamente capaz de esto.
Joey
1
@Johannes, ¿has comparado una findsalida de Unix con un DOS dir /so treepara el caso?
nik
1
¿Alguna vez has usado dir /b? :-)
Joey
@Johannes, en realidad no puedo recordar si hice eso en los días 6.22 de DOS. findMe acostumbré más y con Cygwin, nunca probé los comandos dos (en realidad, me llevó un momento abrir el cmdshell y evitar /usr/bin/dirprobar esa opción. Pero funciona, me alegra saber eso:-)
nik
2

¿Por qué tan complejo? Presione Windowskey + F para iniciar la "Búsqueda de archivos" en Windows. A la izquierda, vaya a "Buscar en" y seleccione la opción en la parte inferior llamada "Examinar ...". Seleccione la (sub) carpeta donde desea buscar. Ingrese "*" (sin las comillas) en el cuadro de edición "Todo o parte del nombre del archivo" e inicie la búsqueda. Tome un café cuando busque en un disco grande con muchos datos y espere a que este motor de búsqueda basado en explorador le muestre una lista completa. Puede buscarlo, abrir archivos directamente e incluso limitar su búsqueda si es necesario.

¿Por qué la gente olvida este comportamiento de búsqueda predeterminado de Windows?

Wim ten Brink
fuente
3
porque no es 1337? :-)
Natrium
13
Tendría dificultades para obtener eso en un archivo de texto, por ejemplo.
Joey
Es cierto, pero ¿por qué alguien lo quiere en un archivo de texto? :-)
Wim ten Brink
2
Tenga en cuenta que esto (al menos en Win XP) buscará todos los archivos ZIP en todas las subcarpetas también. Lo cual será horriblemente lento. Que probablemente no sea lo que quieres. Que no se puede apagar fácilmente. Si no hay archivos ZIP, estoy de acuerdo en que este es el mejor enfoque.
Martin
@Wim: Su proceso de 5 pasos (Win + F, Examinar, Subcarpeta, *, Inicio) es mucho más lento que simplemente escribir "dir / s" (para un mecanógrafo que escribe más de 100 palabras por minuto y está acostumbrado a hacer cosas en un símbolo del sistema, por lo que con frecuencia se abre previamente). Además, el proceso que menciona ha cambiado con las versiones de Windows, mientras que "dir / s" ha sido consistente. Además, su proceso requiere presionar Win + F, lo que no siempre es fácil. A veces, incluso si un teclado tiene la tecla de Windows, esa tecla puede ser más difícil de usar, como en los escenarios de acceso remoto donde la computadora local podría usar la tecla en lugar del control remoto
TOOGAM
1

Este archivo por lotes me parece muy útil.

DragDropListFile.bat

@ECHO OFF
SET targetPath="%~1"
SET ToolPath=%~dp0

dir %targetPath% /b /s /a-d > "%ToolPath%list.txt"

Uso: simplemente arrastre la carpeta y suéltela en el archivo DragDropListFile.bat, luego se crea un archivo llamado list.txt, que contiene lo que desea.

Si no te gusta arrastrar y soltar, prueba este archivo por lotes

ListFile.bat

ECHO OFF

SET crtPath=%~dp0

dir "%crtPath%" /b /s /a-d > list.txt

Uso: coloque el archivo ListFile.bat en la carpeta que desea listar archivos, luego ejecute el archivo ListFile.bat, luego se crea un archivo llamado list.txt, que contiene lo que desea.

123iamking
fuente
0

dir /s /w >files.txtte llevará la mayor parte del camino hasta allí. Mantendrá las extensiones. Luego abra files.txten un editor de texto y

  • ordenar todas las líneas y eliminar las superfluas
  • o eliminarlos con una operación de buscar y reemplazar o 2.
    • La expresión regular eliminó ^ +\d+ File.+\r\n\r\n Dir.+\r\n\r\nlos vacíos y los detalles de la carpeta entre los listados de archivos de carpetas individuales para mí en Notepad ++.
  • Luego simplemente recorte la parte superior y la cola del archivo de texto.
CAD bloke
fuente