Page d'accueil » comment » IT Geek - Comment synchroniser des fichiers portant le même nom

    IT Geek - Comment synchroniser des fichiers portant le même nom

    Vous avez probablement entendu parler de services, tels que Dropbox, qui permettent de synchroniser des fichiers sur plusieurs ordinateurs. Cependant, que se passe-t-il si vous souhaitez effectuer cette opération sur une seule machine? C'est-à-dire que les fichiers portant le même nom de fichier doivent être synchronisés sur la machine de sorte que, lorsqu'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 requise..

    Comment ça marche

    Supposons que vous soyez un développeur Web qui, au fil du temps, a mis en place une belle collection de fonctions Javascript que vous utilisez sur tous les sites que vous gérez. Au fur et à mesure que vous ajoutez ou améliorez ce fichier Javascript (appelons-le «library.js»), seule la copie actuelle que vous modifiez est mise à jour. Cela signifie, par exemple, que si vous apportez une correction de bogue ou une amélioration, vous devrez également l'appliquer manuellement à chacun des dossiers de code source de vos autres sites..

    Notre outil tente de résoudre le problème de devoir manuellement appliquer le fichier mis à jour à chaque dossier source. Ce qu'il fait:

    1. Recherche tous les fichiers portant le 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 de fichier.
    3. Tous les autres fichiers nommés library.js (qui ne sont pas la copie mise à jour la plus récente) ont ensuite 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 respective de library.js est remplacée par la copie la plus récente..

    Parce que 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 fichier sont effectués, le fait de réexécuter le processus immédiatement après ne fera aucun remplacement, car les valeurs de hachage du fichier sont désormais identiques..

    Mise à jour du plus récent outil de copie

    L'outil de mise à jour de l'outil de copie le plus récent est une version modifiée d'un script de traitement par lots portant le même nom (les deux pouvant être téléchargés à l'aide des liens situés au bas de l'article), qui a été converti en fichier EXE afin d'inclure le fichier Nirsoft requis. Utilitaire HashMyFiles. L'outil doit être exécuté à partir de la ligne de commande avec certains paramètres spécifiés. Si vous exécutez simplement le fichier EXE en double-cliquant dessus, vous recevrez un message vous indiquant que.

    Pour utiliser la mise à jour vers la copie la plus récente, 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 dossier source (par exemple,% UserProfile% \ Documents \ Web Sites) et le nom de fichier (library.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 \ Code Files”, en effectuant le remplacement mais en sauvegardant la copie actuelle avant de l'écraser (cette sortie a image supérieure pour cet article):

    UpdateToNewestCopy “C: \ utilisateurs \ jfaulkner \ documents \ Fichiers de code” Common.vb / B

    La commande suivante effectue la même action de recherche que ci-dessus, mais elle ne signale que les fichiers qui seraient remplacés et n'effectue aucune opération sur les fichiers:

    UpdateToNewestCopy “C: \ utilisateurs \ jfaulkner \ documents \ Fichiers de code” Common.vb / V

    Supposons qu'il existe un fichier nommé “C: \ Config \ FilesToSearch.txt” avec le contenu suivant:

    bibliothèque.js
    Common.vb

    La commande suivante permet de rechercher dans le dossier mes documents de l'utilisateur actuel et de signaler les mises à jour de «library.js» et «Common.vb», sans effectuer d'opération de mise à jour:

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

    Automatiser le 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 / toutes les 15 minutes (en fonction de vos besoins), vous pouvez garder les fichiers synchronisés en vrai set-it-and-forget-it mode.

    Télécharger

    Mettre à jour vers la copie la plus récente - format exécutable modifié

    Mise à jour vers la copie la plus récente - fichiers de commandes source (davantage axés sur la ligne de commande)