Eliminación de CARPETA más antigua
brucine Mensajes publicados 24845 Fecha de registro Estado Miembro Última intervención -
1 respuesta
-
hola
intenta el comando de Microsoft forfiles
https://learn.microsoft.com/fr-fr/windows-server/administration/windows-commands/forfiles
-
Hola,
El comportamiento tanto de FORFILES como de la alternativa ROBOCOPY es engañoso: supongamos que tengo en el escritorio una carpeta con fecha de creación 20/10/2022 que será la que se tenga en cuenta y no modificada por un subfolder fechado 06/11/2022 que he agregado, conteniendo solo archivos de más de 3 meses y varios archivos en la raíz, cuyas fechas son más de un mes, excepto uno.
La sintaxis:
for /f "delims=" %%A in ('FORFILES /S /C "cmd /c if @isdir==TRUE echo @path @fdate" /D -30') do ( set "fichero=%%A" echo !fichero! )falla porque selecciona correctamente el subdirectorio antiguo pero, dado que solo se dirige a los directorios (@isdir==TRUE), no me devuelve los archivos antiguos en la raíz.
En las mismas condiciones, una sintaxis de ROBOCOPY que puedo ajustar para eliminar los elementos de la pantalla, pero no importa, selecciona el directorio padre y el subdirectorio, y por lo tanto elimina todo, incluyendo el archivo "reciente":
robocopy "%folder%" "%folder%" *.* /minage:30 /L /sLa moraleja es que es ineficaz o peligroso en todos los casos querer mediante una sintaxis simple eliminar todos los directorios "antiguos"
Me parece más sano (no hay problema a través de FORFILES o ROBOCOPY) listar no los directorios sino todos los archivos anteriores a esa fecha y eliminarlos, luego probar si los directorios restantes están vacíos.
Existen varias sintaxis más o menos rebuscadas, la más simple consiste en mover mediante ROBOCOPY el directorio sobre sí mismo:
ROBOCOPY "Mondossier" "Mondossier" /S /MOVE
-