сравнить 2 файла и скопировать источник, если он отличается от места назначения - vbscript? - PullRequest
0 голосов
/ 23 сентября 2010

Я работаю в Windows XP и мне нужно сделать скрипт, который бы сравнивал 2 файла (1 на сервере и 1 на клиенте). По сути, мне нужен мой скрипт, чтобы проверить, отличается ли файл от клиента от версии сервера, и заменить версию клиента, если она обнаружит разницу (в самом файле, а не только в дате изменения).

1 Ответ

0 голосов
/ 23 сентября 2010

Как вы предлагаете, вы можете пропустить проверку даты, поскольку она может быть изменена без изменения содержимого.

Сначала убедитесь, что размеры разные. Если это так, этого может быть достаточно, чтобы сделать вывод, что они разные. Это также может иметь ложные срабатывания, хотя в зависимости от типов файлов. Например, текстовый файл Unicode может содержать точно такое же содержимое, как текстовый файл ANSI, но может быть закодирован двумя байтами на символ. Если это скрипт, он будет выполняться с точно такими же результатами, но будет в два раза больше.

Если размеры одинаковы, они могут по-прежнему содержать разные байты. Тест грубой силы должен был бы загрузить каждый файл в строку и сравнить их на равенство. Если это большие файлы, и вы не хотите читать их все в память, если в этом нет необходимости, читайте их построчно, пока не увидите разницу. Это при условии, что они являются текстовыми файлами. Если это не текстовые файлы, вы можете сделать что-то подобное, прочитав их в виде фрагментов фиксированного размера и сравнив их.

Другой вариант - запустить команду сравнения файлов "fc" для двух файлов, записать результат и выполнить обновление на основе этого.

...