Scripts para RoboCopy

Shape Image One
Scripts para RoboCopy

Fala galera, dando sequência á série RoboCopy trago agora alguns exemplos de Scripts que poderão ser utilizados em nossos projetos.

***************************************
Copiar Perfil de usuários via RoboCopy:

Crie um mapeamento na máquina nova apontando para o C: da máquina antiga
net use z: \\192.168.10.11\c$
 
Agora basta copiar os comandos abaixo para o Bloco de Notas e salvá-lo como Nome.BAT:
 @echo off

robocopy “z:\documents and settings\%username%\desktop” “c:\documents and settings\%username%\desktop” /e

pause

robocopy “z:\documents and settings\%username%\favorites” “c:\documents and settings\%username%\favorites” /e

pause

robocopy “z:\documents and settings\%username%\My Documents” “c:\documents and settings\%username%\My Documents” /e

pause

net use z: /delete
 
Essa BAT copia todos os dados do desktop, favoritos e meus documentos do usuário que você efetuou o login, além de encerrar a conexão do mapeamento da máquina que mapeamos logo no início.
 

Para copiar o conteúdo de uma pasta para outro local basta utilizar o comando:
robocopy origem destino
Se quiser incluir as subpastas deve-se acrescentar a opção /s:
robocopy origem destino /s
Pode ser utilizado para se fazer mirror de uma pasta, ou seja, ter dentro dela o mesmo conteúdo de uma outra pasta. Para isso, utiliza-se a opção /mir
robocopy origem destino /mir
O robocopy pode também copiar apenas determinados tipos de arquivos.
Caso se queira copiar apenas os arquivos de música para um mp3 player, por exemplo
:
robocopy origem destino *.mp3 /s
Lembrando que o ele só vai copiar os arquivos novos e os modificados, os arquivos que já existem na pasta de destino não serião copiados novamente.
Porém, pode-se também fazer o robocopy não copiar arquivos com determinados critérios.
Por exemplo, não copiar os arquivos extras (arquivos que não existem no destino):
robocopy origem destino *.mp3 /s /xx
Não copiar os arquivos mais novos e mais antigos (arquivos que foram modificado na origem ou destino):
robocopy origem destino *.mp3 /s /xn /xc /xo
Não copiar os arquivos maiores que 5MB (5242880 bytes), nem os menores que 5KB (5120 bytes):
robocopy origem destino *.mp3 /s /max:5242880 /min:5120
É possível também excluir da lista de arquivos a serem copiados determinadas pasta ou arquivos. Por exemplo, não copiar a pasta variados nem o arquivo audio1.mp3
robocopy origem destino *.mp3 /s /xd variados xf audio1.mp3
Uma das grandes vantagens do robocopy é a capacidade de continuar a transferência de um arquivo incompleto, para tanto basta adicionar a opção /Z. Porém em alguns casos não é possível usar o modo reiniciável, por isso há também um outro modo de cópia, o de backup (opção /B). É recomendável é usar a opção /ZB para que o robocopy tente utilizar o modo reiniciável e, caso o acesso ao arquivo seja negado, usar o modo backup.
Apenar o robocopy não possuir uma opção de sincronização de mão-dupla (copiar modificações em ambos os sentidos), pode-se utiliza-lo para esse propósito. Basta executar dois comandos de cópia, utilizando as opções a seguir:
robocopy pasta1 pasta2 *.* /xc /xo
robocopy pasta2 pasta1 *.* /xc /xo
Porém deve se levar em consideração que neste caso o robocopy não copia arquivos que mudaram de tamanho mas não tiveram suas data de modificação atualizada.
Para facilitar o uso o robocopy ainda permite que a opções sejam salvas para que possam ser utilizadas posteriormente. Para salvar as opções de cópia utiliza-se a opção /save: seguido do nome do arquivo. Para utilizar as opções salvar utiliza-se a opção /job: seguido do nome do arquivo. Ex:
robocopy pasta1 pasta2 *.* /xc /xo /save:copia1
robocopy pasta2 pasta1 /job:copia1
Ao salvar as opções de cópia ele também salva o caminho das pastas que foram utilizadas. Portanto, se vc precisa usar o mesmo comando de cópia muitas vezes utlizando as mesmas opções e as mesmas pastas, basta salva-las e utilizar /nosd e /nodd para dizer ao programa que deve ser utilizado as pasta que foram salvas no arquivo. Ex:
robocopy pasta1 pasta2 *.* /xc /xo /save:copia1
robocopy /nosd /nodd /job:copia1