miércoles, 9 de enero de 2013

Mostar o borrar ficheros de una carpeta por fechas desde un comando



Algunas veces necesitamos el poder eliminar ficheros de una o varias carpetas que cumplan unos requisitos como tipo de fichero, fecha, tamaño, etc. Existe un comando poco conocido llamado FORFILES que nos permite buscar una serie de ficheros con unas características determinadas y ejecutar una acción sobre ellos.

Veamos unos ejemplos:

1.- Mostar los ficheros TXT de la carpeta C:\prueba y las subcarpetas que cuelgan de ella.

FORFILES /p c:\Prueba /s /m *.TXT /c  “CMD /c echo @PATH”

Nos mostrará todos los ficheros de la carpeta C:\prueba y subcarpetas que tengan la extensión TXT.

La opción /p indica el PATH donde ha de buscar, si se omite es el directorio actual.
La opción /s le dice que sea recursivo
La opción /m de mascara le indica cual es el patrón a buscar, si se omite es *.*, es decir, todos.
La opción /c es el comando que ejecuta con los resultados obtenidos, en el caso del ejemplo se ha utilizado la variable @PATH que es donde almacena toda la ruta y el nombre del fichero que cumple con los requisitos.

Existen más variables como @FILE que solo contiene el nombre del fichero con su extensión  o @FNAME que es el nombre del fichero sin extensión.

2.- Borrar todos los ficheros TXT de la carpeta C:\Prueba y las subcarpetas que cuelgan de ella que sean posteriores al 1 de enero de 2013.


FORFILES /p c:\prueba /s /m *.txt /c "cmd /c del @PATH" /d 01/01/2013
 


La opción /d nos indica la fecha que debe ser en formato inglés MM/DD/YYYY, podemos poner delante un signo – para indicarle que sea en esa fecha o anterior  o un signo + o no poner nada para indicarle que sea en esa fecha o posterior, también podemos indicarle la cantidad de días, es decir /d -180 le indica que sea anterior a 180 días.

Este comando tiene muchas más opciones que podemos ver en el siguiente link.


Espero que os haya sido útil.

No hay comentarios:

Publicar un comentario