Listar archivos y directorios en un fichero txt

Muchas veces nos encontramos en la necesidad de listar de alguna manera todos los archivos de un directorio para luego poder hacer alguna tarea automatizada (por ejemplo pasarlos a un excel para importar, tener un listado de ficheros para buscarlos, etc..)

Nuestro querido MSDOS puede ayudarnos en esta tarea. Para acceder desde cualquier windows debemos ejecutar el comando cmd o buscar el "Simbolo de sistema" (en Windows7) y ejecutarlo. En la ventana de terminal que aparece podremos ejecutar ciertos comandos que nos crearan el listado de ficheros y subdirectorios que necesitemos en un fichero txt.

Supongamos una estructura de archivos como esta :
  c:\tmp (dentro ficheros tmp1.txt,tmp2.txt,tmp3.txt,tmp4.txt)
  c:\tmp\tmpsub (dentro ficheros tmpsub1.txt y tmpsub2.txt)

Desde nuestra ventana de MSDOS podemos ejecutar el siguiente comando :
dir c:\tmp /s >> c:\tmp\lista.txt

Esto generará en el fichero localizado en c:\tmp\lista.txt el siguiente listado :
  El volumen de la unidad C no tiene etiqueta.
  El número de serie del volumen es: 2CDE-A80B
  Directorio de c:\tmp
  30/07/2013  08:15    <DIR>          .
  30/07/2013  08:15    <DIR>          ..
  30/07/2013  08:15                 0 lista.txt
  30/07/2013  08:13                 0 tmp1.txt
  30/07/2013  08:13                 0 tmp2.txt
  30/07/2013  08:13                 0 tmp3.txt
  30/07/2013  08:13                 0 tmp4.txt
  30/07/2013  08:13    <DIR>          tmpsub
  5 archivos              0 bytes
  Directorio de c:\tmp\tmpsub
  30/07/2013  08:13    <DIR>          .
  30/07/2013  08:13    <DIR>          ..
  30/07/2013  08:13                 0 tmpsub1.txt
  30/07/2013  08:13                 0 tmpsub2.txt
  2 archivos              0 bytes
  Total de archivos en la lista:
  7 archivos              0 bytes
Vamos a ver con mas detalle el funcionamiento de este comando y sus distintas posibilidades. Por una parte el comando dir ejecuta un listado del contenido de una carpeta concreta y si no se indica nada, de la carpeta donde se ejecute. El parametro /s indica que incluya también los subdirectorios que encuentre. Y por ultimo >> hace que el contenido se guarde en la ruta especificada.

Este es un resumen de las distintas posibilidades de este comando para nuestros listados de ficheros y subdirectorios :
  • La sintaxis general es la siguiente : dir (ruta) /OGN /S (/W|B) >ruta/fichero.txt
  • /OG : Muestra primero los directorios
  • /ON : Lista por orden alfabético
  • /OGN : Es una combinación de los dos parametros anteriores
  • /S : Incluye los subdirectorios
  • /W : Muestra el listado en filas ocupando menos espacio
  • /B : Hace que no salga la fecha y tamaño (Sólo se puede usar si no se usa /W)
En nuestro caso, el resultado de ejecutar el comando dir c:\tmp /OGN /S /B >> c:\tmp\lista.txt seria el siguiente :
  c:\tmp\tmpsub
  c:\tmp\lista.txt
  c:\tmp\tmp1.txt
  c:\tmp\tmp2.txt
  c:\tmp\tmp3.txt
  c:\tmp\tmp4.txt
  c:\tmp\tmpsub\tmpsub1.txt
  c:\tmp\tmpsub\tmpsub2.txt
Ésta técnica se puede aplicar también al comando tree de MSDOS que nos lista los directorios en forma de arbol jerárquico, quizá en alguna ocasión nos sea útil disponer de un listado así. Aplicando el comando C:\>tree c:\tmp /F >> c:\tmp\lista.txt a nuestro directorio de prueba obtendriamos un resultado tal que asi :
  Listado de rutas de carpetas
  El número de serie del volumen es 00000002 2CDE:A80B
  C:\TMP
  │   tmp1.txt
  │   tmp2.txt
  │   tmp3.txt
  │   tmp4.txt
  │
  └───tmpsub
           tmpsub1.txt
           tmpsub2.txt
Donde el parámetro /F hace que muestre también los archivos y no solo el árbol de las carpetas.

No hay comentarios:

Publicar un comentario