Como copiar arquivos GIS de forma rápida e prática usando o Robocopy

Quem trabalha com GIS geralmente é um usuário avançado do sistema operacional, normalmente Windows. Trablhar com GIS quase sempre significa manipular grandes quantidades de dados, na casa dos GB ou frequentemente Terabytes de arquivos raster, PDFs, vetores, geodatabases, shapefiles, etc.

No Windows, quando você precisa copiar arquivos para outra unidade, normalmente usa o processo padrão de selecionar, copiar e colar. Embora isso funcione perfeitamente, a velocidade se torna um gargalo, pois a transferência de muitos arquivos, pesados como arquivos GIS são, pode levar muito tempo e até mesmo falhar se os arquivos estiverem abertos, em uso.
Como alternativa, muitos usuários experientes como usuários GIS usam o Robocopy (Robust File Copy). O robocopy uma ferramenta de linha de comando (telinha preta) integrada ao Windows, que oferece mais recursos para mover dados rapidamente para um local diferente (para outra unidade de disco ou servidor ou computador na rede).

Como funciona?

Para usar o recurso Robocopy para copiar arquivos e pastas para outra unidade no Windows, siga estas etapas:

  1. Abra o Menu Iniciar no Windows.
  2. Pesquise por Prompt de Comando (ou digite CMD na busca), clique com o botão direito do mouse no resultado e selecione a opção Executar como administrador.
  3. Digite o seguinte comando para copiar os arquivos e pastas para outra unidade e pressione Enter:
robocopy "C:\caminho\da\pasta\de\origem\"  "D:\caminho\da\pasta\de\destino\" 

No comando, altere os caminhos de origem e destino, bem como as opções. Por exemplo, este comando copia dados da unidade C para a D nos caminhos descritos

No final do código acima podemos adicionar uma dezenda de opções de como o robocopy efetuará a cópia. Algumas delas podem ser perigosas e podem resultar em perda de dados e sobrescrição, então use com cuidado, por sua conta e risco e primeiro treine com arquivos backupeados para evitar perda de dados.

Algumas opções são:

  • /S — Copia subdiretórios, mas não vazios.
  • /E — Copia subdiretórios, incluindo vazios.
  • /COPYALL – copia tudo
  • /MOV – move recortando os arquivos da origem
  • /MIR – mirror ou espelho, espalha origem com destino
  • /Z — Copia arquivos no modo reinicializável.
  • /ZB — Usa o modo reinicializável. Se o acesso for negado, use o modo de backup.
  • /R:5 — Tenta novamente 5 vezes (você pode especificar um número diferente, o padrão é 1 milhão).
  • /W:5 — Aguarda 5 segundos antes de tentar novamente (você pode especificar um número diferente, o padrão é 30 segundos).
  • /B – Especifica que o Robocopy deve usar o modo de backup. No modo de backup, o Robocopy substitui as configurações de permissão de arquivos e pastas (ACLs), que poderiam bloquear o acesso.
  • /Z – Especifica que o Robocopy deve usar o modo reinicializável. No modo reinicializável, se uma cópia de arquivo for interrompida, o Robocopy poderá continuar de onde parou, em vez de copiar novamente o arquivo inteiro.
  • /TBD — Aguarda que nomes de compartilhamento sejam definidos (tenta corrigir o erro 67).
  • /NP — Sem progresso — não exibe a porcentagem copiada.
  • /V — Produz saída detalhada, mostrando os arquivos ignorados.

Você pode usar vários destes comandos acima ao mesmo tempo.

Robocopy "D:\testfiles" "c:\temp\testfiles" /move /e /copyall

O código acima irá mover os arquivos (mov), vai incluir pastas e subpastas (e) e copiará tudo (copyall) para o destino.

Quer ver todos os comandos possíveis? Veja aqui a lista no site da Microsoft

Como acelerar a cópia com multithreading?

Um recurso que torna o Robocopy especial (e muitas vezes esquecido) é seu recurso multithread, que permite copiar vários arquivos simultaneamente usando vários “processadores” ao mesmo tempo. Em vez de um arquivo por vez, como o File Explorer do Windows faz.

robocopy "C:\caminho\da\pasta\de\origem\"  "D:\caminho\da\pasta\de\destino\" /MT: 32

O subcomando /MT do exemplo acima é o modificador que permite ao Robocopy copiar arquivos no modo multithread. Se você não definir um número ao lado do modificador /MT, o número padrão será 8, o que significa que o Robocopy tentará copiar oito arquivos simultaneamente. No entanto, o Robocopy suporta de 1 a 128 threads.

No exemplo estamos usando 32, mas você pode configurá-lo para um número maior. A única ressalva é que um número maior causará maior uso de recursos de processador e rede. Usar um número alto afetará o desempenho se você tiver um processador antigo ou estiver trabalhando na máquina enquanto copia. Como resultado, teste antes de executar o comando com mais threads.

Depois de concluir as etapas, você notará que a cópia de arquivos e pastas levará significativamente menos tempo.

Você não está limitado a copiar arquivos e pastas para uma unidade externa ou interna. Você também pode usar isso para migrar arquivos pela rede ou até na núvem.

Gostou? Compartilhe

2 Comments on “Como copiar arquivos GIS de forma rápida e prática usando o Robocopy”

  1. Que ótima dica. Usei aqui e copiou super rápido. Muito útil para todo analista gis e todos que copiam e organizam arquivos com frequência.

  2. Boa!! Eu estava lutando para copiar arquivos GIS grandes e complexos usando o File Explorer e dando pau. O Robocopy é muito mais rápido e eficiente pra quem é mais safo

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *