Ya le hemos mostrado lo flexible que puede ser el shell de Linux , pero eso no quiere decir que Windows esté más atrás. Aquí hay dos técnicas que puede usar según 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
- En primer lugar, 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 eso.
- El operador –lt (menor que) se utiliza para comparar la propiedad CreationTime de los objetos con Get-Date (la fecha actual) restando 5 días.
- Esto luego nos deja con una colección de objetos que fueron creados hace más de 5 días, que pasamos a Remove-Item.
Consejo profesional
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) | Eliminar artículo: lo que si
Símbolo del sistema
Si bien le recomendamos que utilice uno de los métodos de PowerShell, sin entrar en ninguno de los detalles más importantes, también puede hacerlo desde el símbolo del sistema.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c del @path"
Consejo profesional
Para ver qué archivos se eliminarán, puede usar echo.
forfiles -p "C: \ Backups" -s -m *. * -d -5 -c "cmd / c echo @file"