Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Примерно так (сравнение только по старшему номеру версии):
читать дальше »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sLocalFile=local.txt
set sRemoteFile=Download.txt

set sProgramForRemoteVersionGreaterThanLocalVersion=1.exe
set sProgramForRemoteVersionIsEqualLocalVersion=2.exe

if exist "%sLocalFile%" (
	if exist "%sRemoteFile%" (
		for /f "usebackq tokens=2 delims=. " %%i in (
			`type "%sLocalFile%" ^| findstr.exe /r /i /c:"//Version .\.." 2^>nul`
		) do set /a iLocalVersion = %%i
		
		for /f "usebackq tokens=2 delims=. " %%i in (
			`type "%sRemoteFile%" ^| findstr.exe /r /i /c:"//Version .\.." 2^>nul`
		) do set /a iRemoteVersion = %%i
		
		if defined iLocalVersion if defined iRemoteVersion (
			
			if !iRemoteVersion! gtr !iLocalVersion! (
				if exist "%sProgramForRemoteVersionGreaterThanLocalVersion%" (
					"%sProgramForRemoteVersionGreaterThanLocalVersion%"
				) else (
					echo Not found [%sProgramForRemoteVersionGreaterThanLocalVersion%].
					exit /b 3
				)
			) else if !iRemoteVersion! equ !iLocalVersion! (
				if exist "%sProgramForRemoteVersionIsEqualLocalVersion%" (
					"%sProgramForRemoteVersionIsEqualLocalVersion%"
				) else (
					echo Not found [%sProgramForRemoteVersionIsEqualLocalVersion%].
					exit /b 4
				)
			) else (
				rem !iRemoteVersion! lss !iLocalVersion!
				rem Nothing to do
			)
		)
	) else (
		echo Remote file [%sRemoteFile%] not found.
		exit /b 2
	)
) else (
	echo Local file [%sLocalFile%] not found.
	exit /b 1
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:20, 20-04-2014 | #6