Войти

Показать полную графическую версию : Сравнения двух чисел в двух файлах.


angel_lyucifer
18-04-2014, 21:55
Всем привет, помогите пожалуйста создать скрипт.
У меня есть два файла Download.txt и local.txt они расположены в одной папки и в них есть такие строки:
В файле Download.txt написано //Version 6.0
В файле local.txt написано //Version 5.0
В этих файлах число меняется но всегда в файле Download.txt число больше чем в файле local.txt.
Мне нужно что бы когда число в файле Download.txt больше чем в файле local.txt то надо запустить 1.ехе если числа в этих файлах одинаковые то надо запустить 2.ехе.

Iska
18-04-2014, 22:01
angel_lyucifer, и больше ничего в этих файлах не написано?

angel_lyucifer
19-04-2014, 19:41
и больше ничего в этих файлах не написано? »

Я извиняюсь, забыл написать!
В файле local.txt написано много чего, в файле Download.txt написано кроме версии, адрес загрузки.

Iska
20-04-2014, 07:00
angel_lyucifer, можете упаковать оба файла в один архив и выложить?

angel_lyucifer
20-04-2014, 15:01
можете упаковать оба файла в один архив и выложить? »
Вот.. http://my-angel.ucoz.com/1.zip

Iska
20-04-2014, 15:20
Примерно так (сравнение только по старшему номеру версии):
@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

angel_lyucifer
28-04-2014, 16:56
Спасибо!




© OSzone.net 2001-2012