Borrar los archivos de más de N días (en Windows)

Las publicaciones al blog son cada vez más esporádicas, no por eso poco importantes. Es decir, aveces prefiero publicar poco y útil antes que periódico e inservible.

En este caso, quiero aportar a este blog (mi humilde base de conocimientos) una forma muy sencilla de eliminar archivos de más de N de días de antigüedad en forma automática (ideal para ejecutar por el programador de tareas), algo muy útil para purgar logs o borrar temporales inútiles. En mi caso, fue utilizado para eliminar imágenes periódicas de una cámara IP (JPEG posting) que al final del día unía en un video diario.

Luego de buscar y buscar y estando a punto de escribir un Windows shell script bastante artesanal me encontré con FORFILES, un comando de Windows, que permite de una forma sencilla de seleccionar uno o más archivos y ejecutar un comando sobre los mismos.


Está de más decir que lo primero que deberías hacer es ver como funciona FORFILES:

[CODE]
forfiles /?
[/CODE]

De todas formas, si eres algo perezoso, aquí va la solución al problema que da título a esta presentación:

[CODE]
forfiles -p “C:\donde\esten\tus\archivos” -s -m *.* -d -c “cmd /c del @path”
[/CODE]

Vía: stackoverflow

Tags: , , , , ,


  • Informático de Guardia

    Muy interesante el programa “forfiles”; para los linuxeros que lean este artículo indicarles cómo borrar ficheros antiguos en Linux por si les interesa conocer cómo hacerlo en el sistema operativo del pinguino.
    Salu2

    Reply

  • pedro colas

    buenas tardes .

    Que bueno este comando mira que poder hacer que se borren unos archivos cuando llevan un numero de dias esta muy bien.

    Reply

  • Alejo

    Alguien me puede ayudar Como funciona este comando en un .bat ??

    Reply

  • HUMBERTO CALIXTO

    Me sirvió de ayuda muchas gracias
    lo hice funcionar así

    1) forfiles -P “C:\Users\prinect\Documents” /D -5 -C “CMD /C DEL @PATH” Con esto borro (siempre en la misma máquina, por red no me funcionó), todos los archivos de más de 5 días en ese directorio, y no tengo el archivo.bat en ese lugar.

    2) forfiles -P “C:\Users\prinect\Documents” -M “*.bak” /D -5 -C “CMD /C DEL @PATH” Así borro los mayores a 5 días y solo los .bak

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.