Como posso copiar uma lista de 500.000 arquivos do Windows Server 2008 para um Seagate NAS?

1

Eu tenho um arquivo de texto com ~ 500.000 caminhos completos. Eu quero copiá-los para um NAS uma vez. É cerca de 1 TB de dados. Devo fazer um arquivo zip com todos os arquivos ou copiá-los individualmente? Como posso fazer automaticamente?

    
por Paul DeBruicker 01.08.2012 / 02:35

1 resposta

2

Você pode fazer isso com um comando For statement no prompt de comando ou em um script em lote

For /f %f in (list.txt) do xcopy "%f" \NasName\dest [switches]

Comutadores típicos:

  • /C Continua copiando, mesmo que ocorram erros.
  • /I Se o destino não existir e se você copiar mais de um arquivo, assume que o destino deve ser um diretório.
  • /H Também copia arquivos ocultos e de sistema.
  • /R Sobrescreve arquivos somente leitura.
  • /Y Suprime o aviso para confirmar que você deseja sobrescrever um arquivo de destino existente.

Faça o comando acima e afaste-se por algumas horas. Se o caminho for do caminho relitivo em seu arquivo de lista, substitua %f por C:\path\to\source\%f

Não se esqueça que você precisará de privilégios para ler o arquivo para copiá-los, portanto, se algum dos seus arquivos estiver em pastas restritas (como pastas de documentos de outros usuários), será necessário executar o prompt de comando / arquivo em lote como Administrador. Além disso, se você executar isso em um arquivo de lote, será necessário substituir o único % por %%

Se você listar 500.000 arquivos, veja todos os arquivos em c:\somepath , basta usar Robocopy em vez de xcopy + for declaração

robocopy c:\somepath \NasName\dest [switches]

Eu recomendaria as seguintes opções

  • /s Copia subdiretórios. Observe que esta opção exclui diretórios vazios.
  • /zb Usa o modo de reinicialização. Se o acesso for negado, esta opção usa o modo Backup.
  • /MT Cria cópias multiencadeadas (Funciona apenas no Server 2008 R2 e Windows 7)
  • /LOG:<logfile> Registre os resultados em um arquivo em vez do console (isso aumentará o desempenho de /MT )
por 01.08.2012 / 08:10