Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Поиск и замена строк в ini-файлах (http://forum.oszone.net/showthread.php?t=291150)

alex_frog 17-11-2014 22:27 2431115

Поиск и замена строк в ini-файлах
 
Просьба, подобрать скрипт, который изменяет строки в ini-файлах через cmd, bat

1. Есть несколько ini-файлов содержащие строки например "lifenumber=20" которые постоянно меняются.
Нужно написать скрипт, который ищет в нескольких указанных каталогах ini-файлы (все, что найдет) со строкой "lifenumber=20" и найдя, увеличивает число на 1 единицу больше (+1), на примере "lifenumber=21"
2. Другой скрипт, тоже ищет строку "lifenumber=число" в указанных каталогах (их несколько) и удаляет строку "lifenumber=число" или комментируется строка, например ";lifenumber=число"

Iska 17-11-2014 22:50 2431133

Упакуйте образцы ini-файлов в архив и выложите на RGhost или прикрепите к сообщению.

Цитата:

Цитата alex_frog
который ищет в нескольких указанных каталогах ini-файлы (все, что найдет) »

А это зачем?

Georgio 17-11-2014 23:45 2431168

Цитата:

Цитата alex_frog
1. Есть несколько ini-файлов содержащие строки например "lifenumber=20" которые постоянное меняются.
Нужно написать скрипт, который ищет в нескольких указанных каталогах ini-файлы (все, что найдет) со строкой "lifenumber=20" и найдя, увеличивает число на 1 единицу больше (+1), на примере "lifenumber=21" »


Код:

@echo off

set targets="D:\Test\556\1\*.ini" "D:\Test\557\2\*.ini" "D:\Test\558\3\*.ini"

for /f "delims=" %%i in ('"dir /a-d/b/s %targets% 2>nul"') do (
 for /f "delims=" %%j in ('"type "%%i"& del "%%i""') do (
  for /f "tokens=1,2 delims==" %%k in ("%%j") do (
  if "%%k"=="lifenumber" (
    for /f %%m in ('set /a %%l+1') do (
    echo %%k=%%m>>"%%i"
    )
  ) else (
    echo.%%j>>"%%i"
    )
  )
  )
 )

exit /b


alex_frog 18-11-2014 00:16 2431182

Georgio, спасибо, п.1 работает, даже рекурсивно

alex_frog 18-11-2014 08:31 2431264

Georgio, скрипт "удаляет" удаляет сам файл, а нужно только эту найденную строку
С коммментарием, все ок

alex_frog 25-11-2014 00:48 2435081

Georgio, Просьба, допилить.
Нужно искать несколько строк со словами типа "lifenumber", "lifenumberd1" и "lifenumberd2" и находить по указанным секциям, например [section1], [section2] и прибавлять значения чисел "+1"
Если можно "set targets=" указывать директории по строкам, т.к. может быть 10 и более, в длину они не очень читабельны.

Georgio 25-11-2014 01:15 2435084

Цитата:

Цитата alex_frog
Нужно искать несколько строк со словами типа "lifenumber", "lifenumberd1" и "lifenumberd2" и находить по указанным секциям, например [section1], [section2] и прибавлять значения чисел "+1" »

alex_frog, нужен образец INI-файла в архиве.

aleks_frog 25-11-2014 11:29 2435192

Пример,
Код:

lifenumber=10
lifenumberd1=11
Lifenumberd2=12

[db:section1]
lifenumber=8

[db:section2]
lifenumber=9

Поиск с параметрами: путь с unc, указанный каталог и рекурсивно, файл или группа файлов *.ini, в ini-шках поиск и +1 строк "lifenumber" и\или " lifenumberd1"и\или "lifenumberd2" по нескольким указанным секциям и без указаний секций

Georgio 25-11-2014 17:30 2435364

Цитата:

Цитата aleks_frog
Пример »


Цитата:

Цитата Georgio
нужен образец INI-файла в архиве »

,
а не пример.

Iska 25-11-2014 18:02 2435389

aleks_frog, что случилось с alex_frog? Зачем новая учётная запись?

alex_frog 25-11-2014 22:48 2435569

Iska, Это я, заходил с гаджета, забыл свой пароль)
Georgio, только такой пример и на этом примере, оригиналы не могу, конфиденциально


Время: 21:04.

Время: 21:04.
© OSzone.net 2001-