Pagina inicial » como » Como excluir arquivos mais antigos que X dias no Windows

    Como excluir arquivos mais antigos que X dias no Windows

    Já mostramos o quão flexível pode ser o shell do Linux, mas isso não quer dizer que o Windows seja mais atrasado. Aqui estão duas técnicas que você pode usar, dependendo da sua preferência de shell, cmd ou PowerShell.

    PowerShell 3

    Get-ChildItem -Path “C: \ Backups” -Recurso | Onde-Object CreationTime -lt (Get-Date) .AddDays (-5) | Remover item

    PowerShell 2

    Get-ChildItem -Path “C: \ Backups” -Recurso | Where-Object $ _. CreationTime -lt (Get-Date) .AddDays (-5) | Remover item

    Explicação

    • Primeiramente, obtemos objetos FileInfo e DirectoryInfo no caminho C: \ Backups.
    • Os objetos FileInfo e DirectoryInfo contêm uma propriedade CreationTime, portanto, podemos filtrar a coleção usando esse.
    • O operador -lt (less than) é então usado para comparar a propriedade CreationTime dos objetos com Get-Date (a data atual) subtrair 5 dias.
    • Isso nos deixa com uma coleção de objetos que foram criados há mais de 5 dias, que passamos para Remove-Item.

    Dica Pro

    Para ver o que será removido, você pode usar o parâmetro -WhatIf:

    Get-ChildItem -Path “C: \ Backups” -Recurso | Onde-Object CreationTime -lt (Get-Date) .AddDays (-5) | Remover-Item -WhatIf

    Prompt de comando

    Embora seja recomendável usar um dos métodos do PowerShell, sem entrar em nenhum dos detalhes, você também pode fazê-lo a partir do prompt de comando..

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

    Dica Pro

    Para ver quais arquivos serão excluídos, você pode usar o echo.

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