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

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

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

Пользователь


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

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


имеется файл xml следующего содержания:
Код: Выделить весь код
<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="https://portal.rosreestr.ru/xsl/GKN/Vidimus/04/common.xsl"?><Region_Cadastr_Vidimus_KV><eDocument CodeType="114" Version="04">
все в одну строку
необходим bat файл который будет заменять текст помеченный голубым на: \\serv\папки\xml\common.xsl

вторая задача:
запустить IE в автономном режиме на просмотр этого файла
пока bat умеет лишь брать имя xml который лежит в той же папке в переменную:

читать дальше »

@title [replace]
@echo off
Color 0e

Set find="https://portal.rosreestr.ru/xsl/GKN/Vidimus/04/common.xsl"
Set replace="\\serv\папки\xml\common.xsl"

rem берем имя от файла с разрешением xml:
for %%i in (*.xml) do set FILENAME=%FILENAME% %%i
rem убираем пробел перед именем
set FILEnamefull=%FILENAME:~1%
rem убираем разрешение (4 символа с конца)
set FILEname=%FILEnamefull:~0,-4%
rem выводим результат на экран
echo %FILEnamefull%
echo %FILEname%


в результате должен получится файл %FILEname%_local.xml и открыться в IE

Отправлено: 13:29, 17-09-2012

 

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


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

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


Товарищи, добрый день. Помоги пожалуйста написать батник. Имеется xml файл следующего содержания:
<?xml version="1.0" encoding="UTF-8"?>
<PacketEPD xmlns="urn:cbr-ru:ed:v2.0" EDQuantity="1" Sum="175000" SystemCode="01" EDNo="1" EDDate="2017-11-03" EDAuthor="9999999999">
<ED101 TransKind="01" Priority="5" SystemCode="01" EDReceiver="0000000000" Sum="175000" EDNo="000000000" EDDate="2017-11-02" EDAuthor="0702615000">
<AccDoc AccDocNo="000000" AccDocDate="2017-11-02"></AccDoc>
<Payer PersonalAcc="00000000000000000000" INN="0000000000" KPP="000000000">
<Name>тест</Name>
<Bank BIC="000000000" CorrespAcc="00000000000000000000"></Bank>
</Payer>
<Payee PersonalAcc="00000000000000000000" INN="000000000" KPP="000000000">
<Name>тест "тест"</Name>
<Bank BIC="000000000" CorrespAcc="00000000000000000000"></Bank>
</Payee>
<Purpose>тест</Purpose>
</ED101>
</PacketEPD>

В нем батником нужно значение CorrespAcc= заменить на другой счет и дата в поле EDDate должно равняться дате в поле AccDocDate.

Отправлено: 11:35, 10-11-2017 | #11



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

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


Ветеран


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

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


Цитата Kadoh:
заменить на другой счет »
Откуда брать значение этого «другого счёта»?

Отправлено: 12:25, 10-11-2017 | #12


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


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

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


Не большое уточнение в xml файле значение CorrespAcc="30101810600000000758" мне нужно заменить этот счет на 30109810060340000009. Мне кажется это значение нужно прописать в батнике.

Отправлено: 12:35, 10-11-2017 | #13


Ветеран


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

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


Цитата Kadoh:
значение CorrespAcc="30101810600000000758" »
Заменить, только если «CorrespAcc» будет равен «30101810600000000758»? Или неважно, что там будет, меняем в любом случае?

Отправлено: 13:54, 10-11-2017 | #14


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


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

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


только если равен

Отправлено: 13:55, 10-11-2017 | #15


Ветеран


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

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


Kadoh, а в каких разделах менять — в «Payer», в «Payee» или в любом/обоих?

Отправлено: 17:35, 10-11-2017 | #16


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


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

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


Payee

Отправлено: 17:58, 10-11-2017 | #17


Ветеран


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

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


Kadoh, на WSH:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim strFile

Dim strCurrCorrespAccValue
Dim strNewCorrespAccValue

Dim objXMLDOMElement


strCurrCorrespAccValue = "30101810600000000758"
strNewCorrespAccValue  = "30109810060340000009"

If WScript.Arguments.Count = 1 Then
	strFile = WScript.Arguments.Item(0)
	
	If WScript.CreateObject("Scripting.FileSystemObject").FileExists(strFile) Then
		With WScript.CreateObject("MSXML2.DOMDocument")
			.async = False
			
			If .load(strFile) Then
				For Each objXMLDOMElement In .selectNodes("/PacketEPD/ED101/Payee/Bank[@CorrespAcc=""" & strCurrCorrespAccValue & """]")
					objXMLDOMElement.setAttribute "CorrespAcc", strNewCorrespAccValue
				Next
				
				.save strFile
			Else
				WScript.Echo "Can't load xml content from [" & strFile & "]."
			End If
		End With
	Else
		WScript.Echo "File [" & strFile & "] not found"
	End If
Else
	WScript.Echo "Usage: " & WScript.ScriptName & " <xml-file>"
End If

WScript.Quit 0

Путь к файлу xml задаётся параметром скрипта (также можно просто перетянуть xml-файл на скрипт в Проводнике).

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


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


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

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


Iska, пр запуске выдает ошибку:
Строка: 1
Символ: 8
Ошибка: Предполагается наличие ";"
Код: 800А03ЕС

Последний раз редактировалось Kadoh, 13-11-2017 в 11:35.


Отправлено: 10:56, 13-11-2017 | #19


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


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

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


Iska подскажи в каком месте указать путь к файлу?

Последний раз редактировалось Kadoh, 13-11-2017 в 11:58.


Отправлено: 11:23, 13-11-2017 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Сравнение файлов и замена значения из одного файла в другой. Aleks911tat Скриптовые языки администрирования Windows 12 25-08-2012 22:27
работа с файлами в HEX формате, поиск и замена по 16ричному адресу значения в файле. andr_mozg AutoIt 3 10-03-2012 10:20
CMD/BAT - [решено] Поиск файла, значения в файле и создания для них переменных popoves Скриптовые языки администрирования Windows 4 29-02-2012 20:59
CMD/BAT - [решено] Задавать значения и путь в текстовом файле white155 Скриптовые языки администрирования Windows 4 16-04-2011 14:10
Теория - Можно ли достать значения цены с графика, получив их в текстовом файле? evg64 Программирование и базы данных 1 26-10-2009 07:26




 
Переход