Buscar este blog

martes, 13 de diciembre de 2011

Comprimir con Winrar automaticamente

Hace poco un amigo me comento que se quedaba una hora mas en el trabajo, porque el era el encargado de comprimir, con Winrar, las copias de seguridad de Sql Server.

Tenia 3 bases de datos y había que comprimir una por una, para después grabarlas en DVD.

El tamaño aproximado de cada base de datos era de 20 Gb, así que imagínense cuanto demoraba este proceso.

Decidí darle una mano y con ayuda de San Google encontré algunas lineas de comando muy útiles que usa el Winrar para comprimir archivos.

Bueno esta es la linea de comando completa, para poder comprimir todos los archivos de una carpeta con la misma extensión y sobre todo, uno a la vez:
for %%d in (*.bak) do start /wait /realtime winrar m -m5 -ri15 "%%~nd" "%%~nd.bak"
Esta linea de comando lo que hace es comprimir todos los archivos con extensión .bak, que están dentro de una carpeta y al finalizar elimina los archivos de origen y lo mejor, es que usa el proceso del CPU en tiempo real, para acelerar la compresión.

Explicar para que sirve cada instrucción de esta linea de comando seria aburrirlos pero si desean pueden investigar sobre mas lineas de comando aquí http://www.winrar.es/soporte/articulo/75

Bueno lo que tienen que hacer es abrir el bloc de notas y pegar la linea de comando y guardarlo (con cualquier nombre) con extensión .bat, en la carpeta donde están los archivos que se van a comprimir.


Con esto ya tenemos nuestro .bat creado ahora para probarlo basta con ejecutarlo y listo! Claro esta, que tienes que tener el winrar instalado en la PC.

Como nota adicional quiero decir que no solo funciona con archivos de extensión bak, puede servir para cualquier archivo de cualquier extensión, para eso solo cambiamos en la linea de comando donde dice .bak por cualquier otra extensión.

Por ejemplo si quiero comprimir todos los archivos de Microsoft Word 2010 (.docx) que están dentro de una carpeta, seria así:
for %%d in (*.docx) do start /wait /realtime winrar m -m5 -ri15 "%%~nd" "%%~nd.docx"
Y por ultimo para que esto sea automático, y se ejecute a una determinada hora del día, solo lo agregaremos una tarea programada a nuestro programador de tareas de windows.

No pongo un manual de como crear una tarea programada en windows, porque varia de acuerdo a la versión de windows que tengas instalada, pero vamos, anímate que no es difícil y si no, usa a San Google.

11 comentarios:

  1. Hola. Tenia la misma inquietud tuya e igual decidi crear un archivo BAT con los comandos de compresion. El problema es que si ejecuto el bat directamente funciona si lo hago por tarea programada segun el historial se ejecuto correctamente pero en realidad no hizo nada... alguna idea?

    ResponderEliminar
  2. Excelente aporte, yo tenia uno q iba metiendo todo al mismo .rar pero con el tiempo se toma mas y mas tiempo, lo dejo por si acaso alguien lo necesita, lo copias lo guardas en un .bat y listo, aca va:

    e:
    cd E:\Copias2012\
    "C:\Program Files\Winrar\rar.exe" a -r Copias2012.rar *.bak
    erase *.bak

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. si solo quisiera un solo archivo de varios que contiene mi carpeta ???
    y que no lo eliminara el original al final de ser comprimido???

    ResponderEliminar
  5. podrías explicar que hace esto? ????

    m -m5 -ri15 "%%~nd" "%%~nd

    ResponderEliminar
    Respuestas
    1. esos son los parametros del winrar checalos mas a detalle aqui https://www.winrar.es/soporte/manual/HELPCommandLineSyntax

      Eliminar
  6. Muchas gracias por el aporte me ayudó mucho

    ResponderEliminar
  7. ¿Como puedo habilitar en win rar cuando uno pone contraseña? el cuadro o el combox: Codificar nombres de fichero

    ResponderEliminar