Ms-Dos - Operaciones con fechas para borrar archivos (HELP)

 
Vista:
sin imagen de perfil

Operaciones con fechas para borrar archivos (HELP)

Publicado por Jordi Amat (7 intervenciones) el 30/10/2008 15:16:23
Hola a todos.

Me llamo Jordi, y he realizado un pequeño programa .bat para crear copias de seguridad en un disco externo. Cada copia la identifico con una fecha.

Este es el .bat:

ECHO OFF
CD /D G:
XCOPY/Y /E "C:DATOS*.*" "G:DATOS\%DATE:/=-%*.*"
XCOPY/Y /E "C:INFORMES*.*" "G:INFORMES\%DATE:/=-%*.*"
EXIT

Para no llenar todo el disco duro, me gustaría mantener 5 copias de antiguedad, y por tanto querría saber si hay alguna forma de borrar las copias más antiguas de manera automática.

Me podéis ayudar?

Muchas gracias.

Jordi
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Operaciones con fechas para borrar archivos (HE

Publicado por amparitohijo (94 intervenciones) el 31/10/2008 12:29:10
Hola Jordi.

Pues verás... Se me ocurre cómo hacerlo, pero me parece que te voy a liar más. ¿Sabes utilizar el comando FOR? Además, ¿tienes que conservar 5 copias de cada archivo (las 5 últimas) o borrar los que tengan más de 5 días de antigüedad?

Me explico.
Supongamos que tienes los archivos

26.10.2008.archivo1.txt
27.10.2008.archivo1.txt
28.10.2008.archivo1.txt
29.10.2008.archivo1.txt
30.10.2008.archivo1.txt
31.10.2008.archivo1.txt

y los archivos

20.10.2008.archivo2.txt
25.10.2008.archivo2.txt
30.10.2008.archivo2.txt

¿Quieres conservar los archivos 20.10.2008.archivo2.txt y 25.10.2008.archivo2.txt?
Bufff.... Esto supone un problema... Pero no es imposible. Supongo que tendrías que crear una lista temporal y utilizar el comando FIND dentro de la lista...

Si lo que quieres es que no te borre archivos hasta que no hayan 5 versiones del mismo, vas a tener que trabajar duro. Yo te puedo aportar varias ideas, pero no te lo puedo desarrollar si no me das más datos... Además, estoy un poco pillado de tiempo. Intentaré ayudarte en todo lo que pueda. Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Operaciones con fechas para borrar archivos (HE

Publicado por Antoni Masana (295 intervenciones) el 31/10/2008 13:32:18
En primer lugar haria una carpeta en datos para cada dia y copiaria los fichros sin cambiar los nombres.
En segundo lugar usaria el formato:
AAAAMMDD o AAAA.MM.DD o AAMMDD o AA-MM-DD
Particularmente me quero con el primero o el segundo pero eso es lo de menos.

Para Borrar:

Te colocas en el directorio Datos y haces un DIR /B a un fichero
ordenas el fichero con el /R para hacerlo reverse.

Con el FOR /F saltas los primeros 5 registros y borras el resto:

A falta de algun error de transcripción seria asi:

CD /D G:\Datos
DIR 20* /B /A:D>Temp_1
SORT /R <Temp_1 >Temp_2
FOR /F "skip=5" %%a in (Temp_2) do RD /S /Q %%a

En el caso que tengas los ficheros como dice amparitohijo tienes un problema un poco mayor pero no imposible.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Operaciones con fechas para borrar archivos (HE

Publicado por JotaEme (1 intervención) el 09/03/2009 12:49:30
Hace mucho tiempo de esta respuesta, pero muchas gracias!!
llevo toda la mañana intentando hacerlo y está tirado de esta manera!! :D
Buenisima respuesta!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar