jump to navigation

Script de backup usando o WinRAR 16/12/2008

Posted by Alexander Santos in Dicas, Windows XP.
trackback

Se você tem arquivos importantes e precisa salvá-los constantemente e tem que fazer isso manualmente, dá trabalho e ocupa seu tempo. O trabalho de selecionar arquivo por arquivo ou pasta por pasta dá um trabalhão, e ainda te prende na frente do computador até que o backup seja concluído. Para evitar esse trabalho, crie um script de backup, execute-o e faça outra coisa ao mesmo tempo! O script que eu falo usa dois programas, o primeiro que vem junto com o Windows XP conhecido como Notepad, o segundo, o WinRar um dos compactadores mais usados e um dos melhores. Pois é, você vai fazer backup e compactar os arquivos ao mesmo tempo com apenas um comando!

Apesar de dar trabalho fazer os scripts vale à pena porque você só vai fazer uma vez e utilizar sempre, e se quiser editar o script fique a vontade!

A primeira coisa que devemos fazer é verificar se o WinRar está instalado e funcionando corretamente. Clique aqui para baixar o Winrar.

Com tudo funcionando, temos que criar uma Variável de ambiente para o WinRar. Para fazer isso, clique no menu Iniciar e com o botão direito do mouse clique em cima de Meu computador e selecione Propriedades (tecla de atalho: win + Pause Break). Acesse a aba Avançado e clique no botão Variáveis de ambiente. Uma nova janela será aberta, mas atenção! Clique no botão Nova de Variáveis de usuário para Seu_usuário. Uma janela com dois campos para preenchimento será aberta. Em Nome da variável: digite path e em Valor da variável: digite o caminho onde você instalou o WinRar, por exemplo, C:\Arquirvos de programas\WinRar, clique em OK até concluir.

variavel-de-ambiente

Com a variável de ambiente criada, você pode executar o script que você criar em qualquer lugar do seu computador, ou seja, se o script estiver no Desktop, Meus documentos e etc. você pode executá-lo sem se preocupar em abrir o WinRar ou fazer qualquer coisa, basta executar o script e pronto.

Antes de criar um script, vamos a sintaxe comum da linha de comando do WinRar:

rar <comando1> -<adicionalN> <arquivo> <arquivos…> <@lista_de_arquivos…> <caminho_da_extração\>

  • <Adicional>, <N> = comando(s) adicional, utilizado para definir um tipo especifico de operação.
  • <arquivo>, <arquivos…> = nome(s) do(s) arquivo(s) a processar
  • <@lista_de_arquivos…> = nome de um arquivo contendo os nomes dos arquivos a processar. EX: criar um script backup.lst contendo as seguintes informações:
  • C:\arquivo\doc\*.txt //backup de documentos de texto
  • C:\arquivo\imagem\*.bmp //backup de imagens

Então execute: @backup.lst.

Complicado? Dê uma olhada no menu ajuda do WinRar para conhecer os comandos, mas não se preocupe, eu vou dar um exemplo de script com comentários para facilitar o entendimento:

rar a “D:\Backup\Tecnologia.rar” “D:\Group\Tecnologia”

Como a sintaxe do WinRar é rar <comando>… Nesse script temos:

  • a = comando que adiciona um arquivo;
  • = inicia e finaliza o caminho onde o arquivo se encontra ou será salvo.

No script devemos informar onde será salvo o arquivo comprimido e qual arquivo será salvo.

O script acima fará o backup do arquivo/pasta que está no disco D:\ dentro da pasta Group com nome Tecnologia, ou seja, o arquivo/pasta Tecnologia será comprimido e salvo. Como informado, temos que informar onde salvar o arquivo comprimido, isso é feito no primeiro comando: “D:\Backup\Tecnologia.rar”.

Se você percebeu, no script, primeiro nós informamos onde será salvo o(s) arquivo(s): “D:\Backup\Tecnologia.rar” para depois informar qual arquivo será feito o backup: “D:\Group\Tecnologia”, utilizando o comando a.

Para facilitar o entendimento: “D:\Group\Tecnologia” (Origem do arquivo) “D:\Backup\Tecnologia.rar” (Destino do arquivo comprimido).

Aprendemos a usar o comando a, mas ainda não usamos nenhum comando adicional, então, vamos a outro exemplo:

rar a -x “D:\Group\Tecnologia\Instalacao” “D:\Backup\Tecnologia.rar” “D:\Group\Tecnologia”

Neste script temos o comando adicional x que é usado para extrair arquivos ou pastas com caminhos completos. O comando adicional está atrelado ao caminho logo após ele, no nosso caso: -x “D:\Group\Tecnologia\Instalacao”. Esse comando adicional irá extrair a pasta ou arquivo chamado Instalacao que está dentro da pasta Tecnologia, não fazendo backup do mesmo, mas deixando intacta(o) a pasta ou arquivo original, ou seja, quando fizermos o backup da pasta Tecnologia e salvarmos em um arquivo comprimido no destino (“D:\Backup\Tecnologia.rar”) a pasta ou arquivo Instalacao não será salva(o). Isso é útil quando você não quer fazer backup de arquivos desnecessários.

Entendido como funciona a sintaxe do WinRar, crie seu próprio script: abra o Notepad (bloco de notas) crie as linhas do script e salve o script com um nome qualquer .bat, por exemplo, backup.bat. Para executar o script basta dar um duplo clique.

Use os vários comandos e sub-comandos do WinRar para tornar seu script uma poderosa ferramenta de backup, obtenha informações dos comandos no próprio WinRar em Ajuda do WinRar que está dentro da pasta onde o WinRar foi instalado (algumas versões vêm com o nome WinRar, mas com uma interrogação como ícone).

Dica: algumas vezes a variável de ambiente não funciona com alguns scripts, então, coloque o script e o executável Rar dentro de uma mesma pasta e execute o script, encontre o executável Rar dentro da pasta onde o WinRar foi instalado.

Comentários»

1. Francisco Mendonça - 16/12/2008

Muito massa essa dica !!!

2. Guilherme Mello - 11/02/2009

Cara! tu salvou minha vida, ou pelo menos boa parte dela na qual eu ficaria horas zipando arquivos.

Vlw!

Grande abraço

3. Jorge Justino - 14/04/2009

Amigo tenho um server 2008 e não consigo fazer backup utilizando o winrar, sabe como fazer funcionar no server 2008?

Alexander Santos - 15/06/2009

Você verificou a compatibilidade da versão do WinRar que você está usando com o Server 2008? Tem que ser compatível.

4. Afrânio Vilar - 20/04/2009

Muito boa sua dica …. se não fose muito encomando teria como você posta um script já pronto fazendo backup dos seus arquivos importantes para outro hd e fazendo copia extra desses arquivos para outra maquina na rede ….

DESDE JÁ ABRADEÇO E MUITO OBRIGADO ….

Alexander Santos - 15/06/2009

Respondi por e-mail junto ao Afrânio.

5. Eduardo Carpena - 15/06/2009

Obrigado, grande dica.

6. Leonel - 02/07/2009

Oi tudo bem?

eu desenvolvo sistemas informaticos em DBase Plus e que faltava era a parte de segurança, e tu resolveste esse problema. tentei muito mais a parte de variaveis de sistema é que veio dar o lance essencial.

Tanx

7. sergio - 23/09/2009

precisao fazer esse tipo de backup no outlook e direcionar para uma pasta que esta mapeada em rede , sao backup de ate 4gb , e o mesmo procedimento

Alexander Santos - 23/09/2009

Sergio, é a mesma coisa, mas eu recomendo que você faça backup de cada pasta do Outlook separadas porque arquivos maiores que 2GB geralmente dão erro quando tentamos restaurá-los. O Outlook 2007 suporta arquivos maiores que 2GB, mas versões anteriores à essa não suportam, a não ser que você instale um pacote de compatibilidade que divide os arquivos quando eles chegam aos 2GB. Divida os arquivos de backup e faça o backup do jeito que eu mostrei aqui no blog. Grande abraço.

8. Luiz - 27/08/2010

Boa Noite Alexander Santos.
Dica perfeita, mais não funcionou aqui. Tentei no XP sp3, Server2003, e Seven 32b. Eu executo o bat mais não inicia a compactação com o Winrar. Estou usando o Winrar 3.5 e 3.90.
Poderia me ajudar?
Obrigado.

Alexander Santos - 03/09/2010

Grande, tira um “Print” da tela de tudo que você está fazendo e manda para o meu email de contato: rede066@gmail.com

9. Luiz - 15/09/2010

Boa Noite Alexander.
Primeiramente muito obrigado pela atenção.
e-mail enviado.
Forte abraço.

10. Lucas Masotti - 21/01/2011

Estava precisando disso para um script!
Valeu 😀

11. walmir - 26/01/2011

Tenho uma pasta com varias pastas dentro, preciso que ao compactar cada arquivo seja mantido na pasta, e em cada pasta seja colocado uma senha

Alexander Santos - 27/01/2011

Walmir, ao criar o script, o WinRar irá compactar todas as pastas que você incluir para realizar o backup, inclusive as subpastas, e o arquivo compactado irá manter a hierarquia das pastas exatamente como a hierarquia original (pastas e subpastas), então, você não precisa se preocupar em realizar nada além do script, mas se houver algum arquivo ou pasta que você não quer realizar o backup, utilize o sub-comando -X.

Walmir - 26/02/2011

Desculpe a demora para responder, mas por motivos pessoais fiquei um tempo afastado da net, a minha duvida é a seguinte, tenho várias pastas que ao criptografar serão armazenadas em uma pasta somente (compactação com senha), a senha esta ficando no fim da hierarquia, e n verdade preciso que a senha fique no topo, ou seja na 1ª pasta, não nas sub pastas.
Alexandre, agradeço a sua atenção, e se novamente puder me ajudar agradeceria muito.

12. Anderson - 02/02/2012

Ola, eu usava o alzip para compactar por comando, mas agora vou usar winrar, é mais demorado mais compacta melhor, Obrigado

13. Bruno Sousa - 13/03/2012

Oi, este script faz o backup só de uma pasta ou de vários diretórios?

Alexander Santos - 14/03/2012

Ele faz backup da pasta, subpastas e arquivos que você indicar no caminho.

14. Jocimar M Cappelletti - 15/03/2012

Por gentileza, poderia me passar os passos para criar um script que me permita deixar um backup com horário programado a ser realizado sem a necessidade de alguém executá-lo todos os dias? Desde já agradeço.

Alexander Santos - 16/03/2012

Você deve criar o Script e criar uma Tarefa Agendada do próprio Windows e manda executar o arquivo do Script nos dias e hora que desejar.

15. Matheus Davies Guerra - 20/07/2012

Ola,
Estou com uma dificuldade.
Utilizo esse processo de backup agendado pelo Windows.
Só que agora estava testando fazer backup de uma lista @list.lst.
Se eu executar o BKP.bat, faz o backup normalmente pegando o conteúdo que está descrito no arquivo list.lst, mas agendando no Windows para executar o BKP.bat, vem uma mensagem do WinRAR dizendo que não reconhece o arquivo list.lst.

Alexander Santos - 14/02/2013

Você criou a variável de ambiente?

16. Rodrigo Portamo - 14/01/2013

Para não dar o erro “o comando rar não é reconhecido como um comando interno” ao executar o Script, adicione a variável de ambiente na variáveis de sistemas ao invés de ser na variáveis de usuário.

17. fabio - 19/07/2013

Não consegui fazer, da erro, tem como criar com a extensão .zip?

Alexander Santos - 22/07/2013

Nunca testei nesse formato, mas o WinRar é compatível com o .zip.

18. fabio - 22/07/2013

haveria possibilidade de me mandar um script para usar em rede? quero fazer um backup dos arquivos que estão em rede em um hd externo. não consegui realizar o processo descrito no tutorial.

Rodrigo Portam - 23/07/2013

Fabio, qual erro esta aparecendo?

Fiz esse script para fazer copia de arquivo .pdf, compactar a pasta de origem é gerar um .txt com o log de eventos.

@echo Copia dos aquivos da pasta “C:\NFe2g\Danfe\Ano13Mes07 para pasta “\\192.168.0.10\c$\danfe\Ano13Mes07 em %date%. >>C:\Log_copy_danfes\Log_copia.txt

@echo – Início ás %time%.>>C:\Log_copy_danfes\Log_copia.txt

@echo off
xcopy C:\NFe2g\Danfe\Ano13Mes07\*.pdf* \\192.168.0.10\c$\danfe\Ano13Mes07\ /d /f /y

rar u -ilogC:\Log_copy_danfes\Log_compactacao.txt -r “\\192.168.0.1\nfe\NFe2g.rar” “C:\NFe2g”

@echo – Fim ás %time%.>>C:\Log_copy_danfes\Log_copia.txt
pause

@echo ==========================================================================================================================>>C:\Log_copy_danfes\Log_copia.txt
@pause

Ire melhorar o script, o mesmo não esta comentando caso tenha dúvida informar.

19. fabio - 23/07/2013

quero copiar do meu servidor para meu computador, tentei montar o script como a seguir, mas da erro, diz que não pode criar a origem especificada
@echo Copia dos aquivos da pasta “\\scmadb\geral$ para pasta “d: em %date%. >>C:\Log_backup.txt
@echo – Início ás %time%.>>C:\Log_copy_backup\Log_backup.txt
@echo off
xcopy \\scmadb\geral$\ d:\ /d /f /y
rar u -ilogC:\Log_backup.txt -r “\\scmadb\geral$” “d:”
@echo – Fim ás %time%.>>C:\Log_backup.txt
pause
@echo ==========================================================================================================================>>C:\Log_copy_backup\Log_backup.txt
@pause

tentei também este com a unidade de rede adicionada no meu coputador
@echo Copia dos aquivos da pasta “z: para pasta “d: em %date%. >>C:\Log_backup.txt
@echo – Início ás %time%.>>C:\Log_copy_backup\Log_backup.txt
@echo off
xcopy z: d:\ /d /f /y
rar u -ilogC:\Log_backup.txt -r “z:” “d:”
@echo – Fim ás %time%.>>C:\Log_backup.txt
pause
@echo ==========================================================================================================================>>C:\Log_copy_backup\Log_backup.txt
@pause

esse compartilhamento \\scmadb\geral$ dentro tem outras pastas de cada departamento do meu trabalho. quero compacta-las em um único backup.

Rodrigo Portam - 23/07/2013

O caminho \\scmadb você esta acessando direto seu informar usuário e senha, da máquina que vai rodar esse script tenta acessar o caminho direto, pois é isso que o script vai fazer.

20. fabio - 23/07/2013

SIM, QUANDO EXECUTO \\SCMADB\GERAL$ ELE ACESSA A PASTA

Rodrigo Portam - 23/07/2013

Limpa esse script meu é faz um simples para você ir eliminando erros, cria um que somente acessa a pasta, e vai implementando…

Pois o script não esta conseguindo criar algo, tira o relatório .txt

Rodrigo Portam - 23/07/2013

Ah e sem *gritar* fazendo favor.

fabio - 23/07/2013

desculpa não percebi que escrevi em caixa alta, é que estou documentando um relatório e no impulso escrevi.

21. Douglas Figueiredo - 13/09/2013

Ótimo post Rodrigo, porém não compreendi muito bem como funciona o arquivo.lst, Onde salva-lo e como fazer a sua chamada no script
Desde já muito obrigado!

22. Douglas Figueiredo - 13/09/2013

Rodrigo, não precisa se preocupar pois já compreendi o aquivo.lst.
Já fiz vario teste e todos rodaram perfeitamente….
mais uma vez Obrigado por compartilhar este post

ATT
Douglas Figueiredo

23. Jefferson Cabral - 28/04/2014

Muito boa a dica…. Mas preciso que ele faça esse procedimento com o ultimo arquivo o que devo acrescentrar???

Alexander Santos - 04/08/2014

Não entendi tua pergunta, podes explicar melhor?

24. cesar - 23/02/2015

Como faço um script para compactar vários arquivos , mas cada arquivo deve permanecer com seu nome , exemplo tenho 50 arquivos e vou ter 50 arquivos compactados, não quero compactar tudo dentro de um único arquivo.

25. Daniel Rodriguez - 07/12/2015

Como faço para criar script de backup diferencial no winrar

26. Robertto - 15/12/2015

Bom dia. Tenho um arquivo bat que criar um arquivo de backup automático e compactado já. Seria possível que esses arquivos fossem sempre criados com senha padrão já ?

Obrigado!

27. Adriano Aquino - 26/09/2016

Muito TOP, parabéns!

28. wellington lima - 12/02/2019

Boa noite,
Ao executar esse comando via .bat ele copia somente os arquivos, não copia as pastas e subpastas, estou fazendo algo errado?

“C:\Program Files (x86)\WinRAR\WinRAR.exe” a “C:\Users\Administrator\Documents\ZIP_BKP\teste.rar” “C:\Users\Administrator\Documents\BKP_PROTHEUS\PROTHEUS\PROTHEUS\protheus_data\”

Alexander Santos - 17/04/2019

Wellington, boa noite. Perdoe-me pela demora em responder, mas estou viajando em excesso e com vários projetos! Bem, pelo que vi, você precisa ajustar o script para algo assim: rar a “C:\Users\Administrator\Documents\ZIP_BKP\teste.rar” “C:\Users\Administrator\Documents\BKP_PROTHEUS\PROTHEUS\PROTHEUS\protheus_data”

Onde o primeiro caminho é onde você irá salvar os arquivos dentro de um arquivo teste.rar.
No final do caminho da origem do arquivo, você finalizou com uma \ e isso vai dar erro, pois você precisa nomear o que será utilizado para backup. Desejo ter ajudado, mesmo com toda essa demora!


Deixar mensagem para Francisco Mendonça Cancelar resposta