11Aug

IT Geek: Comment conserver des fichiers avec le même nom dans Sync

Vous avez probablement entendu parler de services, tels que Dropbox, qui sont utilisés pour synchroniser des fichiers sur plusieurs machines. Cependant, que faire si vous voulez effectuer cette opération sur une seule machine? Cela signifie que les fichiers dont le nom de fichier est identique à celui de la machine sont synchronisés sur l'ordinateur, de sorte que lorsque l'un des fichiers est modifié, ils sont tous mis à jour.

Cette fonctionnalité peut être très utile, en particulier pour les développeurs ou les administrateurs système où la duplication de fichiers est parfois nécessaire.

Comment ça marche

Supposons que vous soyez un développeur web qui, au fil du temps, a rassemblé une belle collection de fonctions Javascript que vous utilisez dans tous les sites que vous gérez. Lorsque vous ajoutez ou améliorez ce fichier Javascript( appelons-le "library.js"), seule la copie en cours que vous modifiez est mise à jour. Cela signifierait, par exemple, que si vous faites une correction de bogue ou une amélioration, vous devrez l'appliquer manuellement à chacun des dossiers de code source de vos autres sites.

Notre outil tente de résoudre le problème d'avoir à appliquer manuellement le fichier mis à jour dans chaque dossier source. Que fait-il:

  1. Recherche tous les fichiers avec un nom spécifié( library.js) dans un dossier racine spécifié( % UserProfile% \ Documents \ Web Sites).
  2. Pour tous les fichiers nommés library.js, il localise celui qui a été modifié le plus récemment et note sa valeur de hachage.
  3. Tous les autres fichiers nommés library.js( qui ne sont pas la copie mise à jour la plus récente) ont alors leur valeur de hachage de fichier comparée à la plus récente( déterminée à l'étape précédente).
  4. Si les valeurs de hachage du fichier sont différentes, la copie correspondante de library.js est remplacée par la copie la plus récemment mise à jour.

Puisque nous utilisons des valeurs de hachage pour comparer les fichiers, nous sommes assurés que tous les fichiers remplacés sont effectivement différents de la copie la plus récente. Par exemple, si vous exécutez le processus et que 5 remplacements de fichiers ont été effectués, exécuter à nouveau le processus immédiatement après ne fera aucun remplacement car les valeurs de hachage du fichier sont maintenant identiques.

Mise à jour du nouvel outil de copie

L'outil Mettre à jour le nouvel outil de copie est une version modifiée d'un script de lot portant le même nom( les deux sont disponibles au téléchargement en utilisant les liens au bas de l'article).afin d'inclure l'utilitaire Nirsoft HashMyFiles requis. L'outil doit être exécuté à partir de la ligne de commande avec certains paramètres spécifiés. Si vous deviez simplement exécuter le fichier EXE en double-cliquant, vous obtiendrez un message l'indiquant.

Pour utiliser Update to Date Copy, vous pouvez afficher les paramètres en exécutant "UpdateToNewestCopy /?" Qui affiche la boîte de dialogue suivante:

Les seuls paramètres requis sont le SourceFolder( par exemple% UserProfile% \ Documents \ Web Sites) et le FileName( bibliothèque.js).Cependant, vous pouvez modifier la fonctionnalité en ajoutant des commutateurs supplémentaires comme décrit ci-dessus.

Exemples

La commande suivante trouverait tous les fichiers nommés "Common.vb" dans le dossier "C: \ users \ jfaulkner \ documents \ Fichiers de code", effectuant le remplacement mais effectuant une sauvegarde de la copie en cours avant l'écrasement( cette sortie estce qui produit l'image du haut pour cet article):

UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Fichiers de code" Common.vb / B

La commande suivante effectue la même action de recherche que ci-dessus, mais elle ne fait que signaler les fichiers quiêtre remplacé et n'exécute aucune opération de fichier:

UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Fichiers de code" Common.vb / V

Supposons qu'il existe un fichier nommé "C: \ Config \ FilesToSearch.txt" avec lecontenu suivant:

library.js
Common.vb

La commande suivante rechercherait dans le dossier my documents de l'utilisateur actuel et signalerait les mises à jour de "library.js" et "Common.vb", mais neExécuter toutes les opérations de mise à jour:

UpdateToNewestCopy "% UserProfile% \ Documents" "C: \ Config \ FilesToSearch.txt" / L / V

Automatisation du processus

Ce processus est un candidat idéal pour l'automatisation. En créant une tâche planifiée( rien de spécial requis) avec les paramètres spécifiés et en l'exécutant quotidiennement /hourly/ toutes les 15 minutes( en fonction de vos besoins), vous pouvez garder les fichiers synchronisés dans un véritable mode set-it-and-forget-it.

Télécharger

Mise à jour vers la nouvelle version - format exécutable modifié

Mise à jour de la plus récente copie - fichiers batch source( plus orientés sur la ligne de commande)