Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск и замена строк в ini-файлах

Ответить
Настройки темы
CMD/BAT - Поиск и замена строк в ini-файлах

Новый участник


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

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


Изменения
Автор: alex_frog
Дата: 18-11-2014
Просьба, подобрать скрипт, который изменяет строки в ini-файлах через cmd, bat

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

Отправлено: 22:27, 17-11-2014

 

Ветеран


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

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


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

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

Отправлено: 22:50, 17-11-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


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

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


Цитата 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

Последний раз редактировалось Georgio, 19-11-2014 в 12:52.

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

Отправлено: 23:45, 17-11-2014 | #3


Новый участник


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

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


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

Отправлено: 00:16, 18-11-2014 | #4


Новый участник


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

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


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

Отправлено: 08:31, 18-11-2014 | #5


Новый участник


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

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


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

Отправлено: 00:48, 25-11-2014 | #6


Ветеран


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

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


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

Отправлено: 01:15, 25-11-2014 | #7


Новый участник


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

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


Пример,
Код: Выделить весь код
lifenumber=10
lifenumberd1=11
Lifenumberd2=12

[db:section1]
lifenumber=8

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

Отправлено: 11:29, 25-11-2014 | #8


Ветеран


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

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


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

Цитата Georgio:
нужен образец INI-файла в архиве »
,
а не пример.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:30, 25-11-2014 | #9


Ветеран


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

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


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

Отправлено: 18:02, 25-11-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск и замена строк в ini-файлах

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - автоматический поиск и замена HEX в файлах Tosyk Скриптовые языки администрирования Windows 36 06-11-2021 05:49
CMD/BAT - [решено] Поиск, удаление, замена и добавление строк в текстового файле. Что возможно? akrav Скриптовые языки администрирования Windows 8 06-12-2015 13:22
CMD/BAT - Поиск строк в файле и замена их на числа,сгенерированные по маске. galclerik Скриптовые языки администрирования Windows 17 19-12-2013 11:59
VBS/WSH/JS - Удаление строк в INI файлах gen0m.rsw Скриптовые языки администрирования Windows 5 27-06-2013 15:03
CMD/BAT - [решено] Поиск *.ini на диске с последующим редактированием строк andycollens Скриптовые языки администрирования Windows 3 30-06-2011 11:43




 
Переход