Mova arquivos entre computadores com linha de comando (Windows)

Mova arquivos entre computadores com linha de comando (Windows)

Eu tenho uma VM rodando XP na qual os arquivos são carregados em momentos aleatórios. Preciso de um script ou utilitário adequado para a linha de comando, que seja executado a cada X minutos (por exemplo) eMOVERtodos os arquivos enviados para um diretório compartilhado em uma caixa Win7.

Agora, o movecomando da linha de comando não é executado em unidades, muito menos em compartilhamentos. (E dá uma mensagem super útil Access denied.)

eu poderia fazer um

copy src desr_share
rm src

... mas aqui está a parte complicada:

Quando o comando copy é executado, pode acontecer que um arquivo seja carregado ao mesmo tempo. Eles copypodem fazer upload de apenas um pedaço do arquivo ou ignorá-lo completamente e seguir em frente, mas mais tarde, quando rmentrar em ação, o arquivo pode ser completamente carregado e rmirá apagá-lo, sem que tenha sido copiado corretamente para o destino.

Portanto, preciso de algo que tenha movesemântica (copie um arquivo e exclua-o somente se for bem-sucedido), mas que funcione em várias máquinas.

Alguma sugestão?

PS. Não me importo se um arquivo for movido apenas parcialmente, desde que não seja excluído. Forçarei a substituição de todos os arquivos de destino e, na próxima execução, o arquivo será carregado novamente, completamente.

Responder1

Dê uma olhada no Robocopy, que é padrão no Win7 e está disponível em um kit de desenvolvimento da Microsoft para XP.

use robocopy /?(ou robocopy /? > drive:\path\robocopy_options.txt) para opções.

Janelas 7:

http://technet.microsoft.com/en-us/library/cc733145%28v=ws.10%29.aspx

WindowsXP:

http://www.microsoft.com/en-us/download/details.aspx?id=17657#Requirements

informação relacionada