BorlandIMHO
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору METAJIJI Тогда блок вывода выглядит где-то так: Код: copy /y nul out.ini for /f "eol=# tokens=1,2 delims==" %%A in (my.ini) do 1>>out.ini ( REM если строка - название секции - просто выводим её в новый файл. Признак - символ "[" echo %%A|find "[" REM закомментированная строка. Признак - символ ";" echo %%A=%%B|find ";" REM Строки с изменяемыми переменными. По одному эху на каждую изменяемую переменную. Или вообще на каждую, что эффективнее (см. ниже) echo %%A=%abc% |find /V ";"|find /V "["|find /I "abc=" echo %%A=%val% |find /V ";"|find /V "["|find /I "val=" echo %%A=%qwerty% |find /V ";"|find /V "["|find /I "qwerty=" echo %%A=%zxc% |find /V ";"|find /V "["|find /I "zxc=" REM Остальные строки с переменными. По одному блоку |find /V на все переменные, выведенные выше. Если есть полная уверенность, что выведены все используемые переменные - эта команда не нужна! Лучше обойтись без неё в силу громоздкости (подозреваю, что и работать она будет сильно долго, если переменных сильно много) echo %%A=%%B |find /V ";"|find /V "["|find /V "abc=" |find /V "val="|find /V "qwerty="|find /V "zxc=" ) | Важно: переменные должны иметь существенно различные имена. Т.е. недопустимо, например, иметь переменные "abc" и "zxabc" - фильтр "abc=" сработает на обе и для "zxabc" будут выведены 2 значения: правильное и значение "abc". Практически такая же петрушка, кстати, в вашем варианте... "eol=#" добавлено дабы изменить использовавшийся в предыдущем for ";" - без этого будут отфильтрованы все закомменченные строки чего, как я понимаю, не нужно. Побочный эффект: использование данного символа в ini-файле также недопустимо (точнее - приведёт к трудно предсказуемым результатам). Блок считывания с приведёнными ограничениями будет такой (уже приводился выше): Код: for /f "eol=; delims=" %%A in ('type my.ini^|find /I /V "["') do SET "%%A" | P.S. Описанный блок вывода обрабатывает ~2 строки исходного my.ini в секунду. С отключённым последним echo - ~3 строки в секунду. Больше переменных - больше тормозов. Батники не предназначены для редактирования ini-файлов...
| Всего записей: 2654 | Зарегистр. 12-10-2006 | Отправлено: 23:44 08-05-2010 | Исправлено: BorlandIMHO, 23:58 08-05-2010 |
|