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:
del 20090115.rar
Espero que me haya explicado bien.
Saludos
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.
La fecha no tengo problemas, la genero con el siguiente 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:\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:
del %var%
Y lo borra ok.
Pero cuando hago el comando completo:
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.