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.

4 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.

  2. Ótimo esse código, fiz hum que compacta no Winrar, assim os arquivos fica no tamanho reduzido.

    Arquivo
    Backup diário.bat

    rename D:\PASTA PASTA- (Caso não queira que a mesma seja usada no momento, pois a minha pasta se trata de banco de dados em sistema de arquivos)
    C:\Arquiv~1\WinRAR\RAR.exe a -esh -m5 -mt2 -r -s -t -agyyyy.mm.dd PASTA_.rar @backupDIARIO.txt
    Rename D:\PASTA- PASTA
    Exit

    Arquivo
    backupDIARIO.txt
    D:\PASTA-\*.*

Deixe uma resposta

%d blogueiros gostam disto: