Cómo eliminar archivos de más de X días automáticamente usando PowerShell

Puede usar PowerShell para liberar espacio y mantener las cosas organizadas eliminando solo archivos que sean más antiguos que un cierto número de días en cualquier carpeta. Aquí le mostramos cómo hacerlo en Windows 10.

En Windows 10, Storage sense es una función para liberar espacio automáticamente cuando se está quedando sin almacenamiento. La función funciona eliminando archivos del sistema basura, aquellos archivos que han estado en la papelera de reciclaje o la carpeta de Descargas durante más de un mes, y haciendo Contenido de OneDrive que ha utilizado durante un tiempo solo en línea.



Aunque esta función puede ser útil para controlar el espacio de almacenamiento, es limitada y no ofrece una opción para agregar manualmente diferentes ubicaciones para monitorear y eliminar archivos que no han cambiado en el último mes más o menos.



Si almacena archivos no importantes en una ubicación diferente, es posible usar PowerShell y el Programador de tareas para monitorear y limpiar archivos de cualquier carpeta que sea anterior a un número específico de días.

En esto guía, aprenderá los pasos para eliminar automáticamente archivos que no se hayan modificado en el último mes o cualquier número de días que especifique en Windows 10.



Importante: Pruebe el comando utilizando una carpeta temporal, ya que especificar el parámetro incorrecto puede hacer que se eliminen los archivos incorrectos.

Cómo usar PowerShell para eliminar archivos anteriores a X días en Windows 10

Si tiene carpetas diferentes con una gran cantidad de archivos y desea limpiarlos eliminando los anteriores a ciertos días, puede seguir estos pasos:

  1. Abierto comienzo.

  2. Buscar Windows PowerShell, haga clic derecho en el resultado y seleccione elEjecutar como administrador opción.



  3. Escriba el siguiente comando para eliminar archivos que no se hayan modificado en los últimos 30 días y presione Entrar:

    Get-ChildItem –Path 'C:  ruta  a  carpeta' -Recurse | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remover el artículo

    En el comando anterior, recuerde cambiar 'C: ruta a carpeta' especificando la ruta a la carpeta que desea eliminar archivos, y cambie -30 para seleccionar archivos con una última fecha de modificación.

    PowerShell LastWriteTime command

    Comando PowerShell LastWriteTime

Cómo usar el Programador de tareas para eliminar archivos de más de X días automáticamente en Windows 10

El comando en las instrucciones anteriores le permite eliminar archivos en una carpeta que tienen más de 30 días, pero debe abrir PowerShell y ejecutar el comando manualmente cada vez que desee liberar espacio.

Crear un script de PowerShell con el Bloc de notas

Para ejecutar una tarea utilizando el Programador de tareas, deberá crear un script de PowerShell con los pasos:

  1. Abierto comienzo.

  2. Buscar Bloc y haga clic en el resultado superior para abrir la experiencia.

  3. Copie y pegue el siguiente comando en un archivo de texto del Bloc de notas:

    Get-ChildItem –Path 'C:  ruta  a  carpeta' -Recurse | Where-Object {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | Remover el artículo

    En el comando anterior, recuerde cambiar 'C: ruta a carpeta' especificando la ruta a la carpeta que desea eliminar archivos, y cambie -30 para seleccionar archivos con una última fecha de modificación.

  4. Haga clic en el Expediente menú.

  5. Selecciona el Guardar como opción.

  6. Guarde el archivo usando el cleanup.ps1 nombre y extensión

Crear una tarea usando el Programador de tareas

Si desea automatizar el proceso, debe usar el Programador de tareas para crear una tarea que ejecute el comando a intervalos específicos.

  1. Abierto comienzo.

  2. BuscarProgramador de tareas y haz clic en el resultado.

  3. Haga clic derecho en Biblioteca del programador de tareas carpeta.

  4. Haga clic en elNueva carpeta opción.

  5. Escriba cualquier nombre para la carpeta y haga clic Okay. (Estamos creando una nueva carpeta para mantener las tareas organizadas y separadas de las tareas del sistema).

  6. Haga clic con el botón derecho en la carpeta creada recientemente y seleccione elCrear tarea opción.

  7. En el cuadro 'Nombre', ingrese un nombre para la tarea.

  8. En la pestaña 'General', en la sección 'Opciones de seguridad', seleccione el Ejecutar si el usuario ha iniciado sesión o no opción. (Esta es la opción que hará que la ventana de comandos no aparezca cuando la tarea se ejecute automáticamente).

    Task Scheduler General tab

    Ficha General del programador de tareas
  9. Limpiar elNo almacenar contraseña opción.

  10. Haga clic en la pestaña 'Activadores'.

  11. Haga clic en el Nuevo botón.

  12. Usando el menú desplegable 'Comenzar la tarea', seleccione En un horario.

  13. En 'Configuración', especifique cuándo desea que se ejecute la tarea (por ejemplo, A tiempo, Diariamente, Semanalmente, Mensualmente). Cualquiera sea la opción que seleccione, asegúrese de especificar el comienzo ajustes en el lado derecho.

  14. Haga clic en elOkay botón.

    Task Scheduler Trigger settings

    Configuración del activador del programador de tareas
  15. Haga clic en el Comportamiento lengüeta.

  16. Haga clic en el Nuevo Botón.

  17. Usando el menú desplegable 'Acciones', seleccione elComience un programa opción.

  18. En el campo 'Programa / script', escriba el siguiente comando:

    powershell.exe
  19. En el campo 'Agregar argumentos', escriba el siguiente comando y haga clic en elOkay botón.

    -ExecutionPolicy Bypass C:  ruta  a  cleanup.ps1

    En el comando anterior, recuerde cambiar 'C: ruta a cleanup.ps1' especificando la ruta al script de PowerShell que creó previamente para eliminar archivos.

    Task Scheduler Action settings

    Configuración de acción del programador de tareas
  20. Haga clic en el Configuraciones lengüeta.

  21. Verifique las siguientes opciones:

    • Permitir que la tarea se ejecute bajo demanda.
    • Ejecute la tarea lo antes posible después de un inicio programado perdido.
    • Si la tarea falla, reinicie todo.
  22. Haga clic en elOkay botón.

  23. Escriba su nombre de usuario y contraseña administrativos (si corresponde).

  24. Haga clic en elOkay botón.

Una vez que haya completado los pasos, la secuencia de comandos de PowerShell se ejecutará en la programación eliminando los archivos en la ubicación que son más antiguos que la cantidad de días que especificó. Solo recuerde no cambiar el nombre ni mover la carpeta a otra ubicación, de lo contrario la tarea fallará.

Actualización 29 de enero de 2018: Esta guía se publicó originalmente en diciembre de 2017 y se actualizó en enero de 2019.