2010-09-23 4 views
0

Je travaille sur Windows XP et j'ai besoin de créer un script qui comparerait 2 fichiers (1 sur un serveur et 1 sur un client). Fondamentalement, j'ai besoin de mon script pour vérifier si le fichier du client est différent de la version du serveur et remplacer la version du client s'il trouve une différence (dans le fichier lui-même, pas seulement la date de modification).comparer 2 fichiers et copier la source si différente de la destination - vbscript?

Répondre

0

Comme vous le suggérez, vous pouvez ignorer la vérification de la date car elle peut être modifiée sans que le contenu ne change.

Vérifiez d'abord que les tailles sont différentes. Si oui, cela peut suffire à conclure qu'ils sont différents. Cela peut avoir des faux positifs, même si cela dépend des types de fichiers. Par exemple, un fichier texte Unicode peut contenir exactement le même contenu qu'un fichier texte Ansi, mais être codé avec deux octets par caractère. Si c'est un script, il s'exécutera exactement avec les mêmes résultats, mais sera deux fois plus grand.

Si les tailles sont identiques, elles peuvent toujours contenir des octets différents. Le test de force brute consisterait à charger chaque fichier dans une chaîne et à les comparer pour l'égalité. Si ce sont de gros fichiers et que vous ne voulez pas tous les lire en mémoire si ce n'est pas nécessaire, lisez-les ligne par ligne jusqu'à ce que vous rencontriez une différence. C'est en supposant qu'ils sont des fichiers texte. S'il ne s'agit pas de fichiers texte, vous pouvez faire quelque chose de similaire en les lisant en morceaux de taille fixe et en les comparant.

Une autre option serait d'exécuter la commande de comparaison de fichiers "fc" sur les deux fichiers et de capturer le résultat et de faire votre mise à jour en fonction de cela.

Questions connexes