![]() |
Автоматическое редактирование файла.config
Добрый день.
Вообщем создал инсталятор которые распаковывает приложение в определенную папку. Приложение периодически обновляется (добавляются новые библиотеки и т.д.) в связи с чем в конфигурационный файлик добавляются новые строки. Так как приложение находится на разных объектах и имеет разные коммутационные настройки то запихнуть в инсталятор общий файлик конфигурации я не могу. Идея в том что бы при запуске инсталятора запускался как нибудь .bat или другое средство, который бы добавлял в тестовый фаил нужные строчки, при этом не трогая остальную часть файла. Конфигурационный файл выглядит примерно так(маленькая часть): <add key="SkipPreSelect" value="false" /> <add key="RefundLockTime" value="20" /> <add key="UseSverkaDiff" value="false" /> </appSettings> т.е. новые параметры нужно добавлять между строк <add key="UseDiff" value="false" /> и </appSettings>, а так же учесть что если данные параметры есть то их трогать не нужно. Подскажите каким способом это можно реализовать? и если есть готовые решения то я буду рад их принять:) Заранее большое спасибо. |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Вложений: 1
HTML код:
Чем именно создавали? HTML код:
Образец реального файла упакуйте в архив, каковой приложите к сообщению. HTML код:
Какие именно «новые параметры»? <add key="SkipPreSelect" value="false" /> <add key="RefundLockTime" value="20" /> <add key="UseSverkaDiff" value="false" /> и закрываются командой </appSettings> HTML код:
Надо полагать, конфигурационный файл — это xml-файл. Посему проще и надёжнее всего будет использовать WSH или PoSH (в случае отсутствия систем на XP и ниже). |
Перефразирую немного что бы было понятнее, каким образом можно в текстовом файле добавить между строк
<add key="UseSverkaDiff" value="false" /> </appSettings> добавить строчки <add key="SkipPreSelect" value="false" /> <add key="RefundLockTime" value="20" /> что бы получилось : <add key="UseSverkaDiff" value="false" /> <add key="SkipPreSelect" value="false" /> <add key="RefundLockTime" value="20" /> </appSettings> Естественно что бы при этом не пострадала информация сверху и снизу данного файла, и в случае если на момент применения скрипта там были уже эти строчки то они просто заменились бы. |
Armsinglom,
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Вот и хотел бы автоматизировать наполнение файла cfg, так как обновляют третьи лица которым доверия нет, хотел как можно больше исключить человеческий фактор.... |
Как вариант, написал на js, так как польстился на то, что имеется 2 варианта обозначения литерала
Код:
var Conf = 'Z:\\Box_In\\cfg.Config' |
Спасибо огромное, работает как надо!!!!
Данный скрипт можно использовать в случае изменения параметра с true на false и наоборот, что не может не радовать... Еще раз спасибо!!! |
megaloman не сочти за наглость, а можно этот скрипт заставить что бы он удалял все строки между
<add key="UseSverkaDiff" value="false" /> и </appSettings> и прописывал то что я укажу, т .е. не важно какие между этими строками были параметры и строки, он их затрёт и впишет нужные мне. |
можно этот скрипт заставить чтобы он удалял все строки между
Код:
var Conf = 'Z:\\Box_In\\cfg.Config' Sdel = '<appSettings>'; (сейчас это закомментировано и не работает) и заново вбить скриптом всё что нужно. Сейчас Sdel = '<add key="UseSverkaDiff"'; Я не стал писАть как Вы указали: <add key="UseSverkaDiff" value="false" /> посчитал это избыточным. Но если Вам надо именно так - делайте. Сначала делается удаление, а затем вставка (замена) |
ДА!!!, вот теперь всё как надо!!! Инсталлятор после распаковки автоматом внес все нужные изменения в cfg , отработало на 5+, все кривые строки и весь мусор почистило и аккуратненько укомплектовалось в cfg.
Спасибо огромное!!! Тему закрываю. |
Я по-прежнему считаю, что работать с xml следует средствами, для того предназначенными.
Цитата:
Скрытый текст
Код:
Option Explicit Если параметров нет — они будут добавлены, если есть — у них будут заданы указанные значения. Оригинальный файл будет сохранён с расширением .bak. Цитата:
|
Iska, Подскажите, пожалуйста, чем Вы автоматизируете написание вот этого всего?
Option Explicit Dim objDictionary Dim strSourceFile и так далее Не руками же пишете все? Алгоритм, понятно, руками, а обертку? Вот эти все "WScript.CreateObject" и подобное? ПС: только начинаю изучать скриптовые языки, перехожу с чистого С. |
glukin, редактор Far Manager'а, SciTE. VBSEdit также весьма хорош (но не бесплатен). Главное, никогда не забывайте первой строкой в VBS писать «Option Explicit».
Весьма рекомендую Серый форум и коллекцию ссылок оттуда в: Windows Script Host: Коллекция ссылок, хоть многое на сайте Microsoft уже и убрали (скажем, всё, что было здесь, уже недоступно). Я думаю, что надо бы было выложить всё это куда-нибудь. Сделать какую-нибудь общую инсталляцию и выложить для общего пользования, потому как потребность у народа всё ещё есть. |
Время: 13:59. |
Время: 13:59.
© OSzone.net 2001-