Exemplo Prático: Backup Automatizado via Lote
Este exemplo demonstra um fluxo de trabalho com três scripts em lote (bat) para selecionar, compactar e armazenar arquivos de backup, utilizando o WinRAR.
Arquivo 1: CopiaDados.bat - Cópia seletiva de diretórios para um caminho de destino.
@echo off
rem Limpa e recria os diretórios de destino
rd /S /Q "C:\Backup\Fontes"
md "C:\Backup\Fontes"
rd /S /Q "C:\Backup\Figuras"
md "C:\Backup\Figuras"
rem Copia os arquivos, excluindo os tipos listados no arquivo de filtro
xcopy "D:\Projeto\Fontes" "C:\Backup\Fontes" /S /Y /EXCLUDE:FiltroArquivos.txt
xcopy "D:\Projeto\Figuras" "C:\Backup\Figuras" /S /Y
Arquivo 2: FiltroArquivos.txt - Lista de extensões de arquivo a serem ignoradas durante a cópia.
.aux
.bak
.log
.bbl
.dvi
.blg
.synctex.gz
.ps
.ilg
.ind
.sav
Arquivo 3: ExecutaBackup.bat - Compacta os diretórios copiados com nome baseado em data/hora e os move para locais de armazenamento.
@echo off
call CopiaDados.bat
rem Cria os arquivos compactados com carimbo de data/hora no nome
"C:\Program Files\WinRAR\Rar.exe" a -cfg- -ep1 -idq -ag+[YYYY-MM-DD-HHmmss] "C:\Temp\BackupFontes.rar" "C:\Backup\Fontes"
"C:\Program Files\WinRAR\Rar.exe" a -cfg- -ep1 -idq -ag+[YYYY-MM-DD-HHmmss] "C:\Temp\BackupFiguras.rar" "C:\Backup\Figuras"
rem Copia os backups para os locais de armazenamento
copy "C:\Temp\BackupFontes*.rar" "E:\Backups"
copy "C:\Temp\BackupFontes*.rar" "K:\Backups"
copy "C:\Temp\BackupFiguras*.rar" "E:\Backups"
copy "C:\Temp\BackupFiguras*.rar" "K:\Backups"
rem Remove os arquivos compactados temporários
del "C:\Temp\BackupFontes*.rar"
del "C:\Temp\BackupFiguras*.rar"
rem Limpa os diretórios de cópia temporários
rd /S /Q "C:\Backup\Fontes"
md "C:\Backup\Fontes"
rd /S /Q "C:\Backup\Figuras"
md "C:\Backup\Figuras"
Sintaxe Geral do WinRAR
A sintaxe básica da linha de comando é:
RAR <comando> [ -<opção> ] <arquivo_comprimido> [ <@arquivo_lista...> ] [ <arquivo...> ] [ <caminho_destino\> ]
Exemplos Básicos de Comandos
- Compactar um diretório:
rar a -r -s -ibck C:\Backup.rar C:\Dados - Compactar múltiplos arquivos:
rar a -ibck MinhaLista.arquivo1 arquivo2 documento.txt
Parâmetros Comuns Explicados:
a: Adiciona arquivos ao arquivo comprimido.-r: Processa diretórios e subdiretórios recursivamente.-s: Cria um arquivo comprimido sóliddo (melhor taxa de compressão).-ibck: Executa em segundo plano (minimizado).-ag[formato]: Adiciona a data/hora atual ao nome do arquivo (ex:-ag+[YYYYMMDD]).-cfg-: Ignora o arquivo de configuração padrão do WinRAR.-ep1: Remove o caminho base dos nomes dos arquivos dentro do pacote.-idq: Modo silencioso (exibe apenas erros).
Comandos Principais
Controle de Caminho e Exclusão
-ap<caminho>: Define um caminho interno para armazenar dentro do arquivo comprimido.-ep: Exclui os nomes dos caminhos dos arquivos.-ed: Não adiciona diretórios vazios.-r: Inclui subdiretórios recursivamente.-r0: Inclui subdiretórios recursivamente, mas somente para curingas.-x<arquivo>: Exclui o arquivo especificado (pode ser usado com curingas e repetido).-n<arquivo>: Inclui apenas o arquivo especificado (pode ser usado com curringas e repetido).
Compressão e Desempenho
-m<nível>: Define o nível de compressão (0=armazenar, 3=padrão, 5=máximo).-s: Cria um arquivo sólido.-s-: Desativa a compressão sólida.-ms[ext;ext]: Define tipos de arquivo para armazenar sem compressão (útil para já compactados, como .jpg, .zip).-mt<threads>: Define o número de threads (somente versão Windows). O valor padrão é determinado pelo número de CPUs.
Segurança e Criptografia
-p[senha]: Define uma senha para criptografia (diferencia maiúsculas de minúsculas).-hp[senha]: Criptografa também o cabeçalho do arquivo (mais seguro, impede a listagem do conteúdo sem a senha).
Automação e Data
-ag[formato]: Insere a data/hora atual no nome do arquivo. Exemplos:-ag+[YYYYMMDD],-agYYMMNN(onde NN é um sequencial).-y: Assume "Sim" para todas as perguntas.-o+: Sobrescreve arquivos existentes sem perguntar.-o-: Não sobrescreve arquivos existentes.-inul: Desativa todas as mensagens.-idcdpq: Desativa diferentes tipos de mensagens (c=copyright, d=concluído, p=porcentagem, q=todos a menos que haja erro).
Divisão em Volumes
-v<tamanho>[k|b|f|m|g|G]: Cria volumes de tamanho especificado. Ex:-v100mpara volumes de 100MB. O sufixofusa tamanhos predefinidos (ex:-v1440fpara disquetes 1.44MB).