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

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

Ответить
Настройки темы
CMD/BAT - [решено] Замена строк в файле формата .xml

Аватара для TheLeon

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


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


Конфигурация

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


Изменения
Автор: TheLeon
Дата: 08-05-2018
Здравствуйте, уважаемые форумчане OSZone.net. Нужна помощь, а именно:
в файле, например, "example.xml" нужно найти и заменить строку "<MediaPath Path="Media" />" на "<MediaPath Path="Media" /><MediaPath Path="Vehicles" />" (второе пункт, "Vehicles", со следующей строчки). Возможно ли это сделать через .bat файл?

Файл 152439

Отправлено: 18:54, 08-05-2018

 

Ветеран


Contributor


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

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


Цитата TheLeon:
И тут появляется опять проблема, как поставить путь до файла, в соответствие с настройками пользователя(смотря какой он путь выбрал). »
TheLeon, самый простой способ — указать путь к файлу аргументом скрипта при его вызове из инсталляции. Там ведь есть предопределённые константы/переменные, вида "{app}", так? Вот надо и указать этот "{app}\config.xml" (или где он там будет) аргументом скрипта. Естественно, сам скрипт надо будет слегка подправить, чтобы он этот аргумент принимал и обрабатывал.

Отправлено: 15:00, 10-05-2018 | #11



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

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


Ветеран


Contributor


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

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


Покажите код Вашего скрипта .iss. Покажите в нём место для вызова скрипта .vbs.

Отправлено: 09:36, 17-05-2018 | #12


Ветеран


Contributor


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

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


TheLeon, надо не просто прятать под спойлер, а сначала — обрамить тэгом «code», и только затем обрамлять тэгом «spoiler».

Этого недостаточно. Повторяю:
Цитата Iska:
Покажите в нём место для вызова скрипта .vbs. »
Я не вижу в Вашем скрипте .iss ни единого упоминания config.xml или какого-либо .vbs.

Отправлено: 10:13, 17-05-2018 | #13


Ветеран


Contributor


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

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


Не проверялось.

vehicles.vbs
Код: Выделить весь код
Option Explicit

Dim strSourceFile

Dim objXMLDOMNode
Dim objXMLDOMElement


If WScript.Arguments.Count = 1 Then
	strSourceFile = WScript.Arguments.Item(0)
	
	If WScript.CreateObject("Scripting.FileSystemObject").FileExists(strSourceFile) Then
		With WScript.CreateObject("MSXML2.DOMDocument")
			If .load(strSourceFile) Then
				Set objXMLDOMNode = .SelectSingleNode("/Config/MediaPath[@Path='Vehicles']")
				
				If objXMLDOMNode Is Nothing Then
					Set objXMLDOMElement = .CreateElement("MediaPath")
					objXMLDOMElement.SetAttribute "Path", "Vehicles"
					.SelectSingleNode("/Config").appendChild objXMLDOMElement
					Set objXMLDOMElement = Nothing
					
					.save strSourceFile
				Else
					Set objXMLDOMNode = Nothing
				End If
			Else
				WScript.Echo "Can't load source file [" & strSourceFile & "]."
				WScript.Quit 3
			End If
		End With
	Else
		WScript.Echo "Can't find source file [" & strSourceFile & "]."
		WScript.Quit 2
	End If
Else
	WScript.Echo "Usage: wscript.exe """ & WScript.ScriptFullName & """ <Source file>"
	WScript.Quit 1
End If

WScript.Quit 0
Не убирайте инструкцию Option Explicit!

.iss
Код: Выделить весь код
[Run]
Filename: """{sys}\wscript.exe"""; Parameters: """{app}\User\vehicles.vbs"" ""{app}\User\config.xml"""; WorkingDir: """{app}\User"""
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:36, 17-05-2018 | #14


Аватара для TheLeon

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


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

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


Iska, спасибо, всё работает.

Отправлено: 19:47, 17-05-2018 | #15



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] замена значения в xml-файле firstarey Скриптовые языки администрирования Windows 20 13-11-2017 11:24
CMD/BAT - Замена строк в файле по признаку и маске ВиталийВ Скриптовые языки администрирования Windows 12 13-09-2015 07:54
CMD/BAT - [решено] Замена строк в файле, содержащем пустые строки SharkyEXE Скриптовые языки администрирования Windows 6 02-03-2015 15:42
CMD/BAT - замена слов в XML файле danishru Скриптовые языки администрирования Windows 0 09-02-2014 01:06
CMD/BAT - Замена нескольких строк в файле bcubbs@fb Скриптовые языки администрирования Windows 3 24-01-2013 14:01




 
Переход