Batch para criar backup de várias pastas

Batch para criar backup de várias pastas

Olá pessoal…

Hoje vou mostrar um arquivo batch que desenvolvi, para criar backups de várias pastas para um destino (podendo ser informado, ou até mesmo um HD externo).

Windows
Windows

Pessoal, preparei um batch, onde é possível informar um diretório de destino, e ele copia várias pastas para esse diretório:

@echo OFF
title Backup Geral

set /p _Destino=Insira o diretorio de destino: 

if exist "%_Destino%" (
  echo Backup iniciado - %DATE% %TIME%
  
  if not exist "%_Destino%\backups" mkdir "%_Destino%\backups\"

  robocopy D:\Skype   %_Destino%\backups\Skype\  /s /e /nfl /ndl /ns /nc /njh /njs /r:0 /w:0
  echo Copia diretorio "Skype" finalizado - %DATE% %TIME%
  
  robocopy D:\Thunderbird   %_Destino%\backups\Thunderbird\  /s /e /nfl /ndl /ns /nc /njh /njs /r:0 /w:0
  echo Copia diretorio "Thunderbird" finalizado - %DATE% %TIME%

  echo Backup finalizado - %DATE% %TIME%
  
) else (
  echo Diretorio "%_Destino%" nao existe!
)

pause

Conforme código acima, é informado um diretório para backups, nisso é criado um subdiretório chamado “backups”, por exemplo, se o usuário digitar “D:\Daniel\”, seria criado a pasta “D:\Daniel\backups”, e dentro dela estaria a cópia de tudo que eu tenho em D:\Skype e D:\Thunderbird, lembrando que é um backup incremental, ou seja, só pega arquivos diferentes.

Agora caso você queira colocar em um pendrive ou um HD Externo e não precisar ficar informando o diretório, ai preparei esse batch:

@echo OFF
title Backup Geral

set OLDDIR=%CD%
chdir /d %OLDDIR% &rem restore current directory
set _Destino=%cd%

if exist "%_Destino%" (
  echo Backup iniciado - %DATE% %TIME%
  
  if not exist "%_Destino%\backups" mkdir "%_Destino%\backups\"

  robocopy D:\Skype   %_Destino%\backups\Skype\  /s /e /nfl /ndl /ns /nc /njh /njs /r:0 /w:0
  echo Copia diretorio "Skype" finalizado - %DATE% %TIME%
  
  robocopy D:\Thunderbird   %_Destino%\backups\Thunderbird\  /s /e /nfl /ndl /ns /nc /njh /njs /r:0 /w:0
  echo Copia diretorio "Thunderbird" finalizado - %DATE% %TIME%

  echo Backup finalizado - %DATE% %TIME%
  
) else (
  echo Diretorio "%_Destino%" nao existe!
)

pause

Para fazer funcionar, basta copiar esse conteúdo e gravar em um arquivo com a extensão .bat e dar dois cliques. Lembrando que, se necessário altere as pastas de origem, podendo pegar até diretórios de rede.

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

2 comentários em “Batch para criar backup de várias pastas

  1. Ótima dica Atilio, eu acrescentei um log no final do meu /LOG:f:\backup.log e um /R:10 para que ele não trave em um arquivo que esteja em uso ou que não seja possivel copiar.

Deixe uma resposta

%d blogueiros gostam disto: