Arquivo em lote para copiar arquivos de uma pasta para outra pasta

Eu tenho uma pasta de armazenamento em uma rede na qual todos os usuários armazenam seus dados ativos em um servidor. Agora esse servidor vai ser substituído por um novo devido ao problema de lugar, então eu preciso copiar os arquivos de subpastas da pasta de armazenamento do servidor antigo para a nova pasta de armazenamento do servidor. Eu tenho abaixo ex:

de \ Oldeserver \ storage \ data & files para \ Novo servidor \ armazenamento \ dados e arquivos.

xcopy.exe é definitivamente seu amigo aqui. É construído no Windows, portanto, seu custo é nada.

Apenas xcopy /sc:\source d:\target

Você provavelmente gostaria de ajustar algumas coisas; Algumas das opções que também adicionamos incluem:

  • /s/e – cópia recursiva, incluindo a cópia de diretórios vazios.
  • /v – adicione isto para verificar a cópia em relação ao original. mais devagar, mas para os paranoicos.
  • /h – copia o sistema e arquivos ocultos.
  • /k – copia atributos somente leitura junto com arquivos. caso contrário, todos os arquivos se tornarão read-write.
  • /x – se você se preocupa com permissions, você pode querer /o ou /x .
  • /y – não avisa antes de sobrescrever os arquivos existentes.
  • /z – se achar que a cópia pode falhar e você deseja reiniciá-la, use-a. Ele coloca um marcador em cada arquivo durante a cópia, para que você possa executar novamente o comando xcopy para continuar de onde parou.

Se você acha que o xcopy pode falhar parcialmente (como quando você está copiando em uma conexão de rede escamosa), ou que você tem que pará-lo e querer continuar mais tarde, você pode usar xcopy /s/zc:\source d:\target .

Espero que isto ajude.

Apenas para ficar claro, quando você usar xcopy /sc:\source d:\target , coloque “” em torno de c: \ source e d: \ target, caso contrário, você obterá um erro.

isto é, se houver espaços no caminho, ou seja, se você tiver:

 "C:\Some Folder\*.txt" 

mas não é obrigatório se você tiver:

 C:\SomeFolder\*.txt 

O meu favorito para fazer backup de dados é:

 ROBOCOPY "C:\folder" "C:\new_folder" /mir 

/ mir é para o espelho. Você também pode usar / mov para mover arquivos. Reproduz exatamente a mesma pasta. Ele pode excluir / replace arquivos conforme necessário. Funciona muito bem para mim. É mais rápido que xcopy / copy. É construído no Windows também.

Fonte: http://technet.microsoft.com/pt-br/library/cc733145.aspx

Você pode querer dar uma olhada no XCopy ou no RoboCopy, que são soluções bastante abrangentes para quase todas as operações de cópia de arquivos no Windows.

Para ignorar o ‘especificar um nome de arquivo ou nome de diretório no destino (F = arquivo, D = diretório)?’ prompt com xcopy, você pode fazer o seguinte …

echo f | xcopy /f /y srcfile destfile

ou para aqueles de nós apenas copiando subestruturas / pastas grandes:

use / i que especifica destino deve ser um diretório se copiar mais de um arquivo

Se você quiser copiar o arquivo não usando caminho absoluto, caminho relativo em outras palavras:

não esqueça de escrever antislash no caminho e NÃO slash (^^)

exemplo:

  copy children-folder\file.something .\other-children-folder 

PS: caminho absoluto pode ser recuperado use esses curingas chamados “parâmetros de lote”

  @echo off echo %%~dp0 is "%~dp0" echo %%0 is "%0" echo %%~dpnx0 is "%~dpnx0" echo %%~f1 is "%~f1" echo %%~dp0%%~1 is "%~dp0%~1" 

verifique a documentação aqui sobre cópia: https://technet.microsoft.com/pt-br/library/bb490886.aspx

e também aqui para documentação de parâmetros em lote: https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true

Veja a ferramenta NAS do Windows baseada em rsync . Será um bônus se você estiver familiarizado com os comandos rsync.