Página principal » cómo » Cómo eliminar archivos anteriores a X días en Windows

    Cómo eliminar archivos anteriores a X días en Windows

    Ya le hemos mostrado cuán flexible puede ser el shell de Linux, pero eso no quiere decir que Windows esté más atrasado. Aquí hay dos técnicas que puede usar dependiendo de su preferencia de shell, cmd o PowerShell.

    PowerShell 3

    Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Remover el artículo

    PowerShell 2

    Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Remover el artículo

    Explicación

    • Primero obtenemos los objetos FileInfo y DirectoryInfo en la ruta C: \ Backups.
    • Los objetos FileInfo y DirectoryInfo contienen una propiedad CreationTime, por lo que podemos filtrar la colección usando esa.
    • El operador -lt (menor que) se usa para comparar la propiedad CreationTime de los objetos con la fecha de obtención (la fecha actual), restar 5 días.
    • Esto nos deja con una colección de objetos que se crearon hace más de 5 días, que pasamos a Eliminar elemento..

    Pro Consejo

    Para ver qué se eliminará, puede usar el parámetro -WhatIf:

    Get-ChildItem -Path "C: \ Backups" -Recurse | Where-Object CreationTime -lt (Get-Date) .AddDays (-5) | Quitar artículo

    Símbolo del sistema

    Si bien le recomendamos que use uno de los métodos de PowerShell, sin entrar en ninguno de los detalles importantes, también puede hacerlo desde el símbolo del sistema..

    forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c del @path"

    Pro Consejo

    Para ver qué archivos se van a eliminar, puede usar echo.

    forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c echo @file"