Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: H@T en 15 Enero 2009, 22:29 pm



Título: Script backup BAT con 4 archivos de historial
Publicado por: H@T en 15 Enero 2009, 22:29 pm
Hola gente,
Hoy intenté hacer un script en bat para que haga lo siguiente:

Ya tengo hecho un script que backupea semanalmente otros archivos, los comprime y va guardando con el siguiente formato AAAAMMDD, la cuestión es que quiero solamente dentro de la carpeta que los alberga que existan 4 versiones, es decir una para cada semana. Debe ir borrando cuando llega a la 5 versión, la mas vieja.

Llegué a mostrar por pantalla el archivo que debo borrar, pero cuando intento mandarlo a una variable y luego usar del %VARIABLE% no me funciona.

CONCLUISON: Como debo hacer para que la salida de un comando la guarde en la variable de entorno. Y luego borrar el archivo con el nombre que posee esa variable.

A ver si me explico mejor. Por ejemplo tengo por pantalla:
20090115.rar (es la fecha de hoy en formato AAAAMMDD)

Yo quiero almacenar ese numero en una variable y luego borrar el archivo con dicho nombre. Quedando lo siguiente:

Código:
del 20090115.rar

Espero que me haya explicado bien.

Saludos


Título: Re: Script backup BAT con 4 archivos de historial
Publicado por: Banti en 15 Enero 2009, 22:49 pm
Ahora yo me imagino muchas formas (mal depuradas por eso no pongo) para solucionar pero no entro aun en el contexto.

Mira podes hacer por ejemplo %variable:~-2% que muestra los 2 ultimos carcteres...


Ah... muestra en pantalla! el archivo a borrar! o sea todo facil como lo muestra? Ya que hay una funcion en u thread con chincheta como guardar en una variable la ip que tira ipconfig.


Título: Re: Script backup BAT con 4 archivos de historial
Publicado por: H@T en 16 Enero 2009, 00:58 am
La fecha no tengo problemas, la genero con el siguiente código:

Código:
C:\backup>echo %date:~6,4%-%date:~3,2%-%date:~0,2%.rar
2009-01-15.rar

Ahora si por ejemplo quisiera mandar esa salida 2009-01-15.rar a una variable de entorno como hago?

Hice lo siguiente:

Código:
C:\backup>set VAR=%date:~6,4%-%date:~3,2%-%date:~0,2%.rar

C:\backup>echo %var%
2009-01-15.rar

Quiero hacer lo siguiente:
Código:
del %var%

Y lo borra ok.

Pero cuando hago el comando completo:
Código:
set VAR=dir /b | awk "{print NR==1,$0}" | find "1 "|awk "{print $2}"
no me funciona, probé poner todo el comando entre comilla o comitas simples y sigue sin funcionar.

Ayuda please.