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).
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.
Ó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.
Ótima dica Beto.
Muito obrigado pela contribuição.
Um grande abraço.
Ó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-\*.*
Bom dia.
Que legal Leandro.
Obrigado por compartilhar.
Um grande abraço.
ola tudo bem? gostaria de criar um script para copiar apenas a pasta “DESKTOP” e “MEUS DOCUMENTOS” em terminais corporativos com varios usuarios, ou seja, que copie apenas estas duas pastas dentro de determinada estrutura (docs and settings no windows xp ou users no windows 7 acima). Ou seja… o nome do usuario seria uma incognita, ou que o scrip solicite que se digite o nome da pasta do usuario…
Boa tarde Rafael, tudo bem?
Para acessar dinamicamente, tente os seguintes comandos (ao pressionar Windows + R, abriu normalmente para mim), o primeiro é o Desktop, e o segundo é o Meus Documentos:
“%systemdrive%\users\%username%\Desktop”
“%systemdrive%\users\%username%\Documents”
Um grande abraço.