Quizás, la forma más fácil de eliminar archivos a cierta edad es a través de una línea de comandos o un archivo por lotes o incluso un script. Sí, por supuesto, aún puede hacerlo desde el poderoso Explorador de archivos que viene con Windows, pero ciertamente requiere más pasos que un simple comando.
Por ejemplo, si necesito buscar una lista de archivos PDF que tengan más de un año en mi OneDrive, puedo abrir el símbolo del sistema y ejecutar el siguiente comando.
ForFiles /p "z:OneDrive" /s /m *.PDF /d -365 /c "cmd /c echo @file"
en el cual,
- / p para indicar la ruta para iniciar la búsqueda.
- / s para buscar todas las subcarpetas de forma recursiva.
- / m para definir la máscara de búsqueda para los archivos especificados. En este caso, utilice * .PDF para buscar todos los archivos PDF.
- / d para seleccionar archivos con una fecha de última modificación. -365 simplemente significa hace un año.
- / c para indicar el comando para ejecutar cada archivo encontrado en la búsqueda. La cadena de comando debe estar entre comillas dobles. “Cmd / c echo @file” es el comando predeterminado si no se especifica. Puede utilizar otras variables si es necesario, como:
- @path para la ruta completa del archivo.
- @fsize para el tamaño del archivo.
- @fdate y @ftime para la fecha y hora del archivo.
Para eliminar los archivos encontrados en la búsqueda, reemplace “eco” con “del”En el comando.
ForFiles /p "z:OneDrive" /s /m *.PDF /d -365 /c "cmd /c del @file"
Si necesita hacer esto con frecuencia o en diferentes computadoras, puede ponerlo en un archivo por lotes para que pueda ejecutarlo haciendo doble clic en él.
También puedes hacer lo mismo con Potencia Shell si lo prefieres con el cmdlet Get-ChildItem y Objeto donde.
Get-ChildItem "z:OneDrive" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-365)) -and ($_.Extension -match "PDF")}
Para eliminar los elementos que se encuentran en el cmdlet anterior, canalice el resultado al cmdlet Remove-Item.
Get-ChildItem "z:OneDrive" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-365)) -and ($_.Extension -match "PDF")} | Remove-Item