2010-03-04 12 views
152

¿Cómo logramos el listado recursivo de directorios en DOS?Listado recursivo de directorios en dos

Estoy buscando un comando o una secuencia de comandos en DOS que me puede dar la lista de directorio recursivo similar al comando ls -R en UNIX.

Respuesta

274

Se puede utilizar:

dir /s 

Si necesita la lista sin toda la información del encabezado/pie de página intente esto:

dir /s /b 

(Para asegurarse de que esto funcionará para DOS 6 y versiones posteriores; puede han funcionado antes de eso, pero no recuerdo.)

+7

+1 muy práctico. Si sus directorios contienen muchos archivos, este comando los desplazará por la pantalla demasiado rápido para leerlos. Creo que lo mejor es canalizar la salida de este comando a un archivo txt que puede leer a su propia velocidad. Por ejemplo (suponiendo que se crea el directorio c: \ temp): dir C: \/s> C: \ temp \ CDirectoryListing.txt –

+0

¡Usted señor, es realmente increíble! ¡Funcionó a las mil maravillas! Lo usé en el trabajo (¡donde nos vemos obligados a tener máquinas de Windows) con gVIM! Realmente, realmente bien! ¡Me salvaste horas de dolor de cabeza! – walialu

+0

Por alguna razón, se imprime la ruta absoluta completa con la carpeta C: \ en el frente cuando se usa/S y/B, ¿eso es prevenible? Solo quiero el nombre de archivo relativo. – lama12345

18

Puede obtener los parámetros que está solicitando escribiendo:

dir /? 

La lista completa, trate de:

dir /s /b /a:d 
18

dir /s /b /a:d>output.txt se portarlo a un archivo de texto

2

Puede utilizar varias opciones con FINDSTR para eliminar las líneas no quieren, así:

DIR /S | FINDSTR "\-" | FINDSTR /VI DIR 

salida normal contiene entradas como estas:

28-Aug-14 05:14 PM <DIR>   . 
28-Aug-14 05:14 PM <DIR>   .. 

Puede eliminarlos usando las diversas opciones de filtrado que ofrece FINDSTR. También puede usar los excelentes paquetes de desinstalación, pero convierte la salida a UNIX de manera predeterminada, por lo que ya no obtiene CR + LF; FINDSTR ofrece la mejor opción de Windows.

+0

¡Agradable! Mi requisito adicional es contar todas las líneas, lo cual se hace con 'dir/s/b | encuentra/v/c "" '. – domih

2

me gusta usar la siguiente para obtener una lista correcta ordenación del directorio actual:

> dir . /s /b sortorder:N 
Cuestiones relacionadas