Показать полную графическую версию : bat скрипт - увеличение значение параметра на 1
Hadroran
20-12-2018, 12:16
Привет всем.
Есть ини-файл:
[UpdateSetting]
UpdateReady=1
MainVersion=5.2.0.357
SecVersion=4.0.1
Надо батником найти параметр MainVersion и увеличить значение 357 на 1.
Просматривал подобные темы, но там только поиск и замена значений только на заданные.
Например с примером
Server_address=XXX.XXX.XXX.XXX
Server_port=XXXX
Спасибо.
megaloman
20-12-2018, 14:59
@Echo Off
cls
Set "Ini=Z:\Box_In\file.ini"
Set "KeyWord=MainVersion"
>Nul Move /Y "%Ini%" "%Ini%.bak" &&(
>"%Ini%" (For /f "usebackq tokens=1* delims==" %%A in ("%Ini%.bak") Do (
If /I Not "%KeyWord%"=="%%A" If "%%B"=="" (Echo %%A)
If /I Not "%KeyWord%"=="%%A" If Not "%%B"=="" (Echo %%A=%%B)
If /I "%KeyWord%"=="%%A" (
For /f "tokens=1,2,3,4 delims=." %%i in ("%%B") Do (
Call Set /A LL=%%l+1
(Call Echo %%A=%%i.%%j.%%k.%%LL%%)
)
)
))
)
Pause
Естественно, при условии что MainVersion=x.x.x.x
Hadroran
20-12-2018, 15:31
megaloman,
Хвала Богам. Спасибо. И всего то в цикле у меня была ошибка, сцобако. Чуть глаз не выпал...
Да еще и с бекапом!?!?!?! Круто!
ну и свой вариант прикреплю, пусть будет:
@echo off
set "f=file.ini"
set "sz=MainVersion"
<"%f%">$ (for /f "delims=" %%a in ('more') do 2>nul set "%%a"& @call :# "%%a")
>nul move $ "%f%"
pause& exit
:#
@echo %~1|>nul find "%sz%" && (
for /f "tokens=1-4 delims=." %%a in ('call echo %%%sz%%%') do set /a t4=%%d+1& call echo %sz%=%%a.%%b.%%c.%%t4%%
) || (
echo %~1
)
@exit /b
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.