» Умное сравнение версий файлов

K.A.V.
www.oszone.net
22.02.2010
Автор: K.A.V.
Последнее обновление: 09.08.2012

На этой страничке мы рассмотрим способ умного сравнения версий файлов
Для этого, нам понадобится загрузить Include файл - VersionCheck.nsh

Скопируйте данный файл в каталог с вашим скриптом, и в начале кода пропишите инклуд данной библиотеки:
!include ".\VersionCheck.nsh"

Синтаксис команды:
${VersionCheck} "Версия 1" "Версия 2" "Переменная для результата"

В "переменную для результата" будет помещено одно из следующих значений:
        0 = Сравниваемые версии равны
        1 = Версия 1 новее Версии 2
        2 = Версия 1 старее Версии 2


Теперь примерчики:
${VersionCheck} "1.5.0.2" "1.5.0.3" $0
; $0 = 2

${VersionCheck} "1.5.1" "1.5.0.9" $0
; $0 = 1

${VersionCheck} "2.0" "2.0.0.0" $0
; $0 = 0

Как видите, не важно, какой длины сравниваемые версии, функция сравнивает даже "под версии" и номера сборок
Единственный минус - функция не берёт во внимание буквенные обозначения версий и не сравнивает их, но, мне кажется, и этого будет достаточно ;)