IT Geek Como manter arquivos com o mesmo nome em sincronia
Você provavelmente já ouviu falar de serviços, como o Dropbox, que são usados para manter os arquivos sincronizados em várias máquinas. No entanto, e se você quiser executar essa operação em uma única máquina? Ou seja, manter arquivos que tenham o mesmo nome de arquivo em sincronia na máquina, de modo que, quando um dos arquivos for alterado, eles sejam todos atualizados.
Essa funcionalidade pode ser bastante útil, especialmente para desenvolvedores ou administradores de sistema, onde a duplicação de arquivos é necessária às vezes.
Como funciona
Suponha que você seja um desenvolvedor web que, ao longo do tempo, tenha reunido uma bela coleção de funções Javascript que você usa em todos os sites que você mantém. À medida que você adiciona ou aprimora esse arquivo Javascript (vamos chamá-lo de “library.js”), somente a cópia atual que você está editando é atualizada. Isso significaria, por exemplo, se você fizer uma correção ou melhoria de bug, você teria que aplicá-la manualmente à pasta de código-fonte de cada um dos outros sites..
Nossa ferramenta tenta resolver o problema de ter que aplicar manualmente o arquivo atualizado a cada pasta de origem. O que faz:
- Procura por todos os arquivos com um nome especificado (library.js) dentro de uma pasta raiz especificada (% UserProfile% \ Documents \ Web Sites).
- Para todos os arquivos nomeados library.js, ele localiza aquele que foi modificado mais recentemente e observa seu valor de hash do arquivo.
- Todos os outros arquivos chamados library.js (que não são a cópia atualizada mais recente) terão seu valor de hash do arquivo comparado com o mais recente (determinado na etapa anterior).
- Se os valores de hash do arquivo forem diferentes, a respectiva cópia de library.js será substituída pela cópia atualizada mais recente.
Como estamos usando valores de hash para comparar os arquivos, temos certeza de que os arquivos substituídos são realmente diferentes da cópia mais recente. Por exemplo, se você fosse executar o processo e 5 substituições de arquivos fossem feitas, executar o processo novamente imediatamente depois não faria nenhuma substituição, pois os valores de hash do arquivo agora são idênticos.
Atualizar para a nova ferramenta de cópia
A ferramenta Atualizar para a ferramenta de cópia mais recente é uma versão modificada de um script em lote com o mesmo nome (ambos estão disponíveis para download usando os links na parte inferior do artigo) que foi convertido em um arquivo EXE para incluir o Nirsoft necessário Utilitário HashMyFiles. A ferramenta deve ser executada a partir da linha de comando com determinados parâmetros especificados. Se você fosse apenas executar o arquivo EXE clicando duas vezes, você receberá uma mensagem indicando isso.
Para usar o Update to Newest Copy, você pode visualizar os parâmetros executando “UpdateToNewestCopy /?”, Que mostra o seguinte diálogo:
Os únicos parâmetros necessários são o SourceFolder (por exemplo,% UserProfile% \ Documents \ Web Sites) e o FileName (library.js). No entanto, você pode alterar a funcionalidade adicionando switches adicionais conforme descrito acima.
Exemplos
O seguinte comando localizaria todos os arquivos denominados “Common.vb” dentro da pasta “C: \ users \ jfaulkner \ documents \ Arquivos de Código”, realizando a substituição, mas fazendo um backup da cópia atual antes de sobrescrevê-la (essa saída é o que produziu imagem superior para este artigo):
UpdateToNewestCopy “C: \ users \ jfaulkner \ documents \ Arquivos de Código” Common.vb / B
O comando a seguir executa a mesma ação de pesquisa acima, no entanto, ele apenas relata os arquivos que seriam substituídos e, na verdade, não realiza operações de arquivo:
UpdateToNewestCopy “C: \ users \ jfaulkner \ documents \ Arquivos de Código” Common.vb / V
Suponha que haja um arquivo chamado “C: \ Config \ FilesToSearch.txt” com o seguinte conteúdo:
library.js
Common.vb
O comando a seguir procuraria na pasta my documents do usuário atual e reportaria qualquer atualização para “library.js” e “Common.vb”, mas não executaria nenhuma operação de atualização:
UpdateToNewestCopy “% UserProfile% \ Documents” “C: \ Config \ FilesToSearch.txt” / L / V
Automatizando o processo
Este processo é um candidato ideal para automação. Criando uma tarefa agendada (nada de especial necessário) com as configurações especificadas e fazendo com que ela seja executada diariamente / por hora / a cada 15 minutos (dependendo de suas necessidades), você pode manter os arquivos sincronizados em true set-it-and-forget-it moda.
Baixar
Atualizar para o formato executável de cópia mais recente - modificada
Atualizar para a cópia mais recente - arquivos em lote de origem (mais orientados para linha de comando)