Existem muitas e boas ferramentas dentro do Windows, já o disse várias vezes. E várias vezes disse que optamos por instalar ferramentas externas quando o Windows as tens disponíveis e integradas dentro dele.
Um desses (bons) exemplos é o Robocopy. Capaz de rivalizar com o qualquer outra ferramenta de cópia de ficheiros de Windows esta ferramenta está disponível de raiz desde o Windows Vista. Disponível para o XP através da instalação de um conjunto interessante de outras ferramentas e disponível aqui.

Mas torna-se complicado explicar tudo o que o robocopy é capaz de fazer. Ele faz quase tudo o que se possa pensar e referente, claro está, a copiar ficheiros do local A para o local B.
Apareceram erros? Ele insiste N vezes (sendo que quem define N é o utilizador).
Cópias lentas e ficheiro a ficheiro? Ele lança N processos paralelos (mais um N que você decide)
As mais valias desta ferramenta são as seguintes:
- Tolerante a quebras de rede e capaz de retomar as cópias
- Capaz de copiar de forma correcta os atributos dos ficheiros, proprietário e outros propriedades por omissão, sem ter de recorrer a opções que nunca nos lembramos
- Modo persistente que permite tentar copiar um ficheiros que não pode ser acedido
- Modo Mirror que permite replicar uma estrutura de directórios
- Capacidade de copiar um largo numero de ficheiros que noutras ferramentas de cópia (copy ou xcopy) iriam não ser possíveis
- Barra de progressão que permite acompanhar o processo de cópia
- Capacidade de copiar ficheiros ou directorias com mais de 256 caracteres
Caso vão testar o comando e antes de começarem a bater com a cabeça contra a parede devem ter em atenção que esta ferramenta tem uma sintaxe particular.
Esquecam o copy c:\origem\ficheiro d:\destino\ficheiro.
A partir de agora será robocopy c:\origem\ d:\destino ficheiros1 ficheiro2.
Existem inúmeras opções possíveis e serem usadas, mas são imensas as possibilidades que podem usar para as estarmos a enumerar.
Deixamos abaixo a ajuda do robocopy para que escolham as que querem usar.
——————————————————————————-
ROBOCOPY:: Robust File Copy para Windows
——————————————————————————-
Utilização:: ROBOCOPY origem destino [ficheiro [ficheiro]…] [opções]
origem :: Directório de Origem (unidade:\caminho ou \\servidor\partilha\caminho).
destinatino :: Destination Dir (unidade:\caminho ou \\servidor\partilha\caminho).
ficheiro :: Ficheiro(s) a copiar (nomes/caracteres universais: a predefinição ‚ “*.*”).
::
:: Opções de cópia:
::
/S :: copiar Subdirectórios, excepto os que estiverem vazios.
/E :: copiar Subdirectórios, incluindo os que estiverem vazios.
/LEV:n :: copiar apenas os primeiros n níveis da árvore de directórios de origem.
/Z :: copiar ficheiros em modo reiniciável.
/B :: copiar ficheiros no modo de Cópia de Segurança.
/ZB :: utilizar o modo reiniciável; se o acesso for negado,
utilizar o modo de Cópia de Segurança.
/EFSRAW :: copiar todos os ficheiros encriptados em modo EFS RAW.
/COPY:sinalizadorescópia :: conteúdo a COPIAR para os ficheiros (predefinição: /COPY:DAT).
(sinalizadorescópia : D=Dados, A=Atributos, T=Carimbos de data/hora).
(S=Segurança=ACLs de NTFS, O=Informações do proprietário, U=Informações de auditoria).
/DCOPY:T :: COPIAR Carimbos de Data/Hora de Directórios.
/SEC :: copiar ficheiros com segurança (equivalente a /COPY:DATS).
/COPYALL :: COPIAR TODAS as informações dos ficheiros (equivalente a /COPY:DATSOU).
/NOCOPY :: NÇO COPIAR informações dos ficheiros (útil com o comando /PURGE).
/SECFIX :: CORRIGIR a segurança dos ficheiros em todos os ficheiros, mesmo os ficheiros ignorados.
/TIMFIX :: CORRIGIR datas/horas em todos os ficheiros, mesmo o ficheiros ignorados.
/PURGE :: eliminar ficheiros/directórios de destino que já não existam na origem.
/MIR :: Espelhar uma árvore de directórios (equivalente a /E em conjunto com /PURGE).
/MOV :: Mover ficheiros (eliminar da origem depois de copiar).
/MOVE :: MOVER ficheiros E directórios (eliminar da origem depois de copiar).
/A+:[RASHCNET] :: adicionar os Atributos especificados a ficheiros copiados.
/A-:[RASHCNET] :: remover os Atributos especificados dos ficheiros copiados.
/CREATE :: CRIAR árvore de directórios e ficheiros de comprimento zero apenas.
/FAT :: criar ficheiros de destino através de nomes de ficheiros FAT 8.3 apenas.
/256 :: desactivar suporte para caminhos muito longos (> 256 caracteres).
/MON:n :: MONITORIZAR origem; voltar a executar se forem apresentadas mais de n alterações.
/MOT:m :: MONITORIZAR origem; voltar a executar em m minutos, se houver alterações.
/RH:hhmm-hhmm :: Horas de Execução – alturas em que poderão ser iniciadas novas cópias.
/PF :: verificar horas de execução Ficheiro a Ficheiro (não por cada passagem).
/IPG:n :: Intervalo entre Pacotes (ms), para libertar largura de banda em linhas lentas.
/SL:: copiar hiperligações simbólicas em vez do destino.
/MT[:n] :: Criar cópias multithread com n threads (predefinição 8).
n tem de ser pelo menos 1 e não pode ser maior que 30.
Esta opção ‚ incompatível com as opções /IPG e /EFSRAW.
Redireccionar os resultados através da opção /LOG para um melhor desempenho.
::
:: Opções de Selecção de Ficheiros:
::
/A :: copiar apenas ficheiros que tenham o atributo Arquivo definido.
/M :: copiar apenas ficheiros que tenham o atributo Arquivo e repor o atributo.
/IA:[RASHCNETO] :: Incluir apenas ficheiros que tenham qualquer um dos Atributos especificados definido.
/XA:[RASHCNETO] :: Excluir ficheiros que tenham qualquer um dos Atributos especificados definido.
/XF file [ficheiro]… :: Excluir Ficheiros que coincidam com os nomes/caminhos/caracteres universais especificados.
/XD dirs [directórios]… :: Excluir Directórios que coincidam com os nomes/caminhos especificados.
/XC :: excluir ficheiros alterados.
/XN :: excluir ficheiros mais recentes.
/XO :: excluir ficheiros mais antigos.
/XX :: Excluir ficheiros e directórios suplementares.
/XL :: Excluir ficheiros e directórios isolados.
/IS :: incluir os mesmos ficheiros.
/IT :: incluir ficheiros optimizados.
/MAX:n :: Tamanho máximo de ficheiro – excluir ficheiros com um tamanho superior a n bytes.
/MIN:n :: Tamanho mínimo de ficheiro – excluir ficheiros com um tamanho inferior a n bytes.
/MAXAGE:n :: ANTIGUIDADE máxima de ficheiro – excluir ficheiros com mais de n dias/data.
/MINAGE:n :: ANTIGUIDADE mínima de ficheiro – excluir ficheiros com menos de n dias/data.
/MAXLAD:n :: Data Máxima do último Acesso – excluir ficheiros não utilizados desde n.
/MINLAD:n :: Data Mínima do último Acesso – excluir ficheiros utilizados desde n.
(Se n < 1900 então n = n dias, caso contrário n = data em formato AAAAMMDD).
/XJ :: excluir pontos de Junção (normalmente incluído por predefinição).
/FFT :: assumir Tempos de Ficheiros FAT (granulação de 2 segundos).
/DST :: compensar diferenças de tempo DST de uma hora.
/XJD :: excluir pontos de Junção para Directórios.
/XJF :: excluir pontos de Junção para Ficheiros.
::
:: Opções de Repetição:
::
/R:n :: número de Tentativas em cópias falhadas: a predefinição ‚ de 1 milhão.
/W:n :: Tempo de espera entre tentativas: a predefinição ‚ de 30 segundos.
/REG :: Guardar /R:n e /W:n no Registo como predefinições.
/TBD :: espera para nomes de partilha A DEFINIR (erro de repetição 67).
::
:: Opções de Registo:
::
/L :: Listar apenas – não copiar, colocar carimbo de data/hora ou eliminar quaisquer ficheiros.
/X :: comunicar todos os ficheiros suplementares, não apenas os seleccionados.
/V :: produzir saída Verbosa, com apresentação dos ficheiros ignorados.
/TS :: incluir Carimbos de Data/Hora de ficheiros de origem na saída.
/FP :: incluir Nome de Caminho Completo na saída.
/BYTES :: imprimir tamanhos como bytes.
/NS :: Sem Tamanho – não registar tamanhos de ficheiros.
/NC :: Sem Classe – não registar classes de ficheiros.
/NFL :: Sem Lista de Ficheiros – não registar nomes de ficheiros.
/NDL :: Sem Lista de Directórios – não registar nomes de directórios.
/NP :: Sem Progresso – não apresentar percentagem copiada.
/ETA :: mostrar Hora Estimada de Recepção de ficheiros copiados.
/LOG:ficheiro :: enviar estado para ficheiro de REGISTO (substituir registo existente).
/LOG+:ficheiro :: enviar estado para ficheiro de REGISTO (acrescentar ao registo existente).
/UNILOG:ficheiro :: enviar estado para ficheiro de REGISTO como UNICODE (substituir registo existente).
/UNILOG+:ficheiro :: enviar estado para ficheiro de REGISTO como UNICODE (acrescentar ao registo existente).
/TEE :: enviar para a janela da consola e para o ficheiro de registo.
/NJH :: sem cabeçalho de tarefa.
/NJS :: sem resumo de tarefa.
/UNICODE :: emitir estado como UNICODE.
::
:: Opções de Tarefa:
::
/JOB:nometarefa :: tirar parâmetros do ficheiro da TAREFA especificado.
/SAVE:nometarefa :: GUARDAR parâmetros no ficheiro de tarefa especificado
/QUIT :: SAIR depois de processar a linha de comandos (para ver parâmetros).
/NOSD :: NÃO foi especificado um Directório de Origem.
/NODD :: NÃO foi especificado um Directório de Destino.
/IF :: Incluir os seguintes Ficheiros.
















