Robocopy
tem a opção de monitorar o diretório de origem e copiar sobre qualquer arquivo que tenha alterações. Você pode especificar quantas alterações no diretório devem ocorrer antes de copiar ( /mon n
onde n
está o número de alterações) e quanto tempo aguardar antes de digitalizar novamente ( /mot t
onde t
está o tempo de espera em minutos).
Gostaria de monitorar uma pasta quase continuamente, pois há apenas um arquivo que estou procurando e quero que as alterações sejam basicamente instantâneas. Não consigo fazer o monitor de robocópia por um período de tempo inferior a um minuto. Eu tentei /mot 0.5
e falha. Também tentei /mot 0
e o robocopy sai apenas após a digitalização uma vez, sem monitorar continuamente.
Como faço para a robocopy digitalizar uma pasta quase continuamente, com incrementos de tempo inferiores a 1 minuto? Como alternativa, existe alguma outra ferramenta de linha de comando que possa monitorar constantemente uma fonte de arquivo e copiar alterações em tempo real?
fonte
Respostas:
Robocopy
Como ele aceita apenas alguns minutos como argumento, acho que você não pode forçá-lo a executar com mais frequência. No entanto, você pode executá-lo usando um arquivo em lotes e permitir que o tempo e o loop ocorram no arquivo em lotes ou nas tarefas agendadas, e não na robocópia.
fonte
Suas tags afirmam que você está usando o Windows 8. Isso é bom, pois você tem a ótima ferramenta que é o PowerShell e um pequeno cmdlet útil chamado
Register-ObjectEvent
.Crie um arquivo de texto, altere a extensão para
.ps1
, cole o script abaixo no arquivo. Mude a$watchedFolder
variável para a pasta que deseja assistir. Altere a função Do-Something para incluir seu comando robocopy ou o que for. Execute o script, enquanto o script estiver em execução, essa função será executada (quase instantaneamente!) Sempre que um arquivo ou pasta for alterado na pasta monitorada.Você poderia executar esse script na inicialização do Windows e ele seria executado em segundo plano o tempo todo sem usar um timer.
Veja em ação
Execute o script salvo.
Você verá uma janela do console piscando. Após o fechamento, a única indicação de que está sendo executada será alguns novos processos.
Faça algumas coisas na área de trabalho para testar.
Algumas informações básicas - Caso você não esteja familiarizado com as ferramentas usadas nesta resposta.
System.IO.FileSystemWatcher
, visite a página do MSDN .fonte
O DSynchronize é um utilitário independente que permite sincronizar periodicamente duas ou mais pastas no disco rígido, disquete, LAN, chave USB, CD-DVD (com software de gravação de pacotes) e no servidor FTP. Não é exatamente do que se trata, mas a coisa mais próxima que pude encontrar.
Eu também estava procurando uma solução para o tempo mínimo de 1 minuto no Robocopy e encontrei essa pergunta de dois anos. Acabei tendo este software sugerido para mim, e é isso que estou usando. Para o registro, não tenho afiliação com o software.
Prós:
Contras:
A opção de sincronização em tempo real está marcada na captura de tela na seção 'Opções especiais'. Isso seria o que a pergunta parece descrever como o objetivo. Se não estiver marcado e você não tiver um cronômetro definido, clique no botão 'Sincronizar' para iniciar uma sincronização única.
Como sincronizar duas pastas:
Eu também encontrei este vídeo do YouTube , que mostra o software em ação. Ele mostra uma versão mais antiga e as opções não estão no mesmo lugar, mas fornece uma ideia de como o software funciona.
fonte