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
)