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:
-
/CContinua copiando, mesmo que ocorram erros. -
/ISe o destino não existir e se você copiar mais de um arquivo, assume que o destino deve ser um diretório. -
/HTambém copia arquivos ocultos e de sistema. -
/RSobrescreve arquivos somente leitura. -
/YSuprime 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
-
/sCopia subdiretórios. Observe que esta opção exclui diretórios vazios. -
/zbUsa o modo de reinicialização. Se o acesso for negado, esta opção usa o modo Backup. -
/MTCria 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)