elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Mantener un directorio circular con X ficheros, eliminando los más antiguos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mantener un directorio circular con X ficheros, eliminando los más antiguos  (Leído 2,507 veces)
genosida

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Mantener un directorio circular con X ficheros, eliminando los más antiguos
« en: 5 Septiembre 2019, 16:56 pm »

Buenas tardes

ante todo presentarme y agradeceros que dediquéis una parte de vuestro tiempo a leer mi consulta.

Por no enrollarme más: necesito mantener un directorio "circular" de con un nº fijo de ficheros. Cada hora un script añade un nuevo fichero y, lo que se debería hacer es, si se supera el límite de ficheros, eliminar el más antiguo.

No depende de la fecha (si fuera así, no estaría aquí planteándolo, pues es relativamente sencillo).

Esto es para un servidor Windows.

Si a alguien se le ocurre una solución, le estaré muy agradecido.

Un saludo


En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.056



Ver Perfil
Re: Mantener un directorio circular con X ficheros, eliminando los más antiguos
« Respuesta #1 en: 5 Septiembre 2019, 21:28 pm »

Saludos,

- Eliminar el más antiguo con respecto a que fecha? Creación, Modificación o Acceso? No depende de la fecha? entonces como sabes que es más antiguo?


En línea

genosida

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Mantener un directorio circular con X ficheros, eliminando los más antiguos
« Respuesta #2 en: 6 Septiembre 2019, 16:09 pm »

Hola

quizá no me he expresado bien.

Yo lo que quiero es mantener los útimos 50 ficheros, por ejemplo. Sin importar la fecha que tengan.

Si se añade uno más, necesito que se borre el más antiguo.

Saludos
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Mantener un directorio circular con X ficheros, eliminando los más antiguos
« Respuesta #3 en: 6 Septiembre 2019, 17:00 pm »

como no decís en que lenguaje, una idea genérica sería ingresar el mombre de cada archivo en un array de 50 elementos, al agregar un archivo se agrega al último y se puede eliminar el primero.
En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.056



Ver Perfil
Re: Mantener un directorio circular con X ficheros, eliminando los más antiguos
« Respuesta #4 en: 6 Septiembre 2019, 18:05 pm »

- Ahí Tincopasan te ha dado una idea, yo para irme por otra rama revisaría la fecha de creación, esta fecha aparece o actualiza cuando el fichero o carpeta aparece en un lugar, ya sea cuando se pega desde otro lado o se crea manualmente.

-- Esto sería bastante fácil con un For, puedes revisar si te convence, o si prefieres otro método:

Citar
c:\Users\EdSon\Desktop>For /f "tokens=* skip=30" %a In ('Dir /b /a:-D /o:-d /t:c') Do @Echo %a
exiftool(-k).exe
dm
cmd_xp.exe
ffmpeg-GIF.cmd
ffmpeg-palettegen.cmd
GIF Movie Gear.lnk
ScreenToGif.exe
8.jpg
dokumen.site_seguridad-informatica-enidocx.pdf
jasperreports-ultimate-guide-3v2_0.pdf
JS2BBCode.html
HTML2BBCode.html
AnyDesk.exe
IrfanView 64.lnk
pingo.exe
Windows7 Shortcuts eBook.zip
e-books.lnk
VirtualDub.lnk

c:\Users\EdSon\Desktop>

- Lo que hace es hacer un Dir para mostrar solo los nombres de archivo (/b) de la carpeta actual, no carpetas/directorios (/a:-D), ordenados por fechas (/o) del más nuevo al más viejo (/o:-d) considerando las fechas de Creación (/t:c).

- El For utiliza el resultado del Dir considerando nombres de archivos con espacions (tokens=*) y obviando los primeros 30 archivos (skip=30) (en tu caso poner 50) para la variable %a (en batch usar %%a) e imprimir en pantalla el nombre de dicho archivo (@echo %a)

- Siempre se prueba primero, luego puedes cambiar el @Echo %a por un Del /f %a para eliminar
En línea

genosida

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Mantener un directorio circular con X ficheros, eliminando los más antiguos
« Respuesta #5 en: 10 Septiembre 2019, 12:44 pm »

Muchas gracias a todos.

Lo analizo a ver si me puede servir.

Saludos
En línea

genosida

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Mantener un directorio circular con X ficheros, eliminando los más antiguos
« Respuesta #6 en: 10 Septiembre 2019, 12:55 pm »

EdePC: Tu solución me viene de perlas.

Muchas gracias amigo.

Un saludo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines