![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Автоматическое редактирование файла.config |
|
Любой язык - [решено] Автоматическое редактирование файла.config
|
Пользователь Сообщения: 51 |
Добрый день.
Вообщем создал инсталятор которые распаковывает приложение в определенную папку. Приложение периодически обновляется (добавляются новые библиотеки и т.д.) в связи с чем в конфигурационный файлик добавляются новые строки. Так как приложение находится на разных объектах и имеет разные коммутационные настройки то запихнуть в инсталятор общий файлик конфигурации я не могу. Идея в том что бы при запуске инсталятора запускался как нибудь .bat или другое средство, который бы добавлял в тестовый фаил нужные строчки, при этом не трогая остальную часть файла. Конфигурационный файл выглядит примерно так(маленькая часть): <add key="SkipPreSelect" value="false" /> <add key="RefundLockTime" value="20" /> <add key="UseSverkaDiff" value="false" /> </appSettings> т.е. новые параметры нужно добавлять между строк <add key="UseDiff" value="false" /> и </appSettings>, а так же учесть что если данные параметры есть то их трогать не нужно. Подскажите каким способом это можно реализовать? и если есть готовые решения то я буду рад их принять ![]() Заранее большое спасибо. |
|
Отправлено: 14:28, 12-02-2017 |
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать ДА!!!, вот теперь всё как надо!!! Инсталлятор после распаковки автоматом внес все нужные изменения в cfg , отработало на 5+, все кривые строки и весь мусор почистило и аккуратненько укомплектовалось в cfg.
Спасибо огромное!!! Тему закрываю. |
Отправлено: 18:22, 14-02-2017 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Я по-прежнему считаю, что работать с xml следует средствами, для того предназначенными.
Цитата Armsinglom:
Скрытый текст
Option Explicit Dim objDictionary Dim strSourceFile Dim objFSO Dim strKey Dim objXMLDOMElement Set objDictionary = WScript.CreateObject("Scripting.Dictionary") With objDictionary .Add "SkipPreSelect", "false" .Add "RefundLockTime", "20" .Add "UseSverkaDiff", "false" End With strSourceFile = "cfg.Config" Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(strSourceFile) Then With WScript.CreateObject("Microsoft.XMLDOM") .preserveWhiteSpace = True .load strSourceFile For Each strKey In objDictionary.Keys Set objXMLDOMElement = .selectSingleNode("/configuration/appSettings/add[@key='" & strKey & "']") If objXMLDOMElement Is Nothing Then Set objXMLDOMElement = .createElement("add") objXMLDOMElement.setAttribute "key", strKey objXMLDOMElement.setAttribute "value", objDictionary.Item(strKey) .selectSingleNode("/configuration/appSettings").appendChild objXMLDOMElement Else objXMLDOMElement.setAttribute "key", strKey objXMLDOMElement.setAttribute "value", objDictionary.Item(strKey) End If Set objXMLDOMElement = Nothing Next objFSO.CopyFile strSourceFile, strSourceFile & ".bak", True .save strSourceFile End With Else WScript.Echo "Can't find source file [" & strSourceFile & "]." WScript.Quit 1 End If Set objFSO = Nothing WScript.Quit 0 Если параметров нет — они будут добавлены, если есть — у них будут заданы указанные значения. Оригинальный файл будет сохранён с расширением .bak. Цитата Armsinglom:
|
||
Последний раз редактировалось Iska, 24-02-2017 в 08:29. Причина: Добавил пропущенную запятую Отправлено: 02:16, 24-02-2017 | #12 |
Старожил Сообщения: 161
|
Профиль | Отправить PM | Цитировать Iska, Подскажите, пожалуйста, чем Вы автоматизируете написание вот этого всего?
Option Explicit Dim objDictionary Dim strSourceFile и так далее Не руками же пишете все? Алгоритм, понятно, руками, а обертку? Вот эти все "WScript.CreateObject" и подобное? ПС: только начинаю изучать скриптовые языки, перехожу с чистого С. |
Отправлено: 13:23, 24-02-2017 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать glukin, редактор Far Manager'а, SciTE. VBSEdit также весьма хорош (но не бесплатен). Главное, никогда не забывайте первой строкой в VBS писать «Option Explicit».
Весьма рекомендую Серый форум и коллекцию ссылок оттуда в: Windows Script Host: Коллекция ссылок, хоть многое на сайте Microsoft уже и убрали (скажем, всё, что было здесь, уже недоступно). Я думаю, что надо бы было выложить всё это куда-нибудь. Сделать какую-нибудь общую инсталляцию и выложить для общего пользования, потому как потребность у народа всё ещё есть. |
Последний раз редактировалось Iska, 25-02-2017 в 02:34. Отправлено: 02:27, 25-02-2017 | #14 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Редактирование swf файла | shveicar | Вебмастеру | 0 | 05-05-2012 15:32 | |
Доступ - Windows 7 starter. Где находится config.nt и config.sys. Что их заменяет? | Надежда_Абрамова@vk | Microsoft Windows 7 | 1 | 14-03-2012 23:53 | |
ASUS P5E постоянно виснет, или нет файла WINDOWS/SYSTEM32/CONFIG/SYSTEM | грузь | Непонятные проблемы с Железом | 8 | 13-09-2008 10:04 | |
[решено] Автоматическое редактирование настроек DCOM | madmax24 | Microsoft Windows NT/2000/2003 | 2 | 01-07-2008 08:29 | |
Нужно автоматическое резервное копирование папки config | babki | Microsoft Windows NT/2000/2003 | 6 | 30-11-2006 13:31 |
|