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

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

Ответить
Настройки темы
CMD/BAT - [решено] Замена текста между тегов

Аватара для vano42

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


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

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


Здравствуйте,
имеется xml файл с примерной структурой
Код: Выделить весь код
<?xml version="1.0" encoding="UTF-8"?>
<user>
    <string name="u_name">Vasilii Terkin</string>
    <string name="u_vozrast">24565</string>
    <string name="u_foto">local.jpg</string>
</user>
в файле всё может измениться, но
Код: Выделить весь код
<string name="u_name">%USERNAME%</string>
останется неизменным.

Подскажите как заменить текст между тегами выше


еслиб были регулярки то чтото вроде
Код: Выделить весь код
#<string name="u_name">(.*)</string>#iU

Отправлено: 07:47, 09-08-2012

 

Ветеран


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

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


vano42, если:
Цитата vano42:
в файле всё может измениться, »
используйте XML DOM: DOM Reference, а не регулярные выражения.

Отправлено: 08:34, 09-08-2012 | #2



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

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


Аватара для vano42

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


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

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


Цитата Iska:
используйте XML DOM: DOM Reference, а не регулярные выражения. »
как требуемую задачу на нём сделать в .bat мне ещё более не понятно(

Отправлено: 08:55, 09-08-2012 | #3


Старожил


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

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


vano42, я правильно понимаю, вам нужно найти определённый тэг (<string name="u_name">) и заменить только его содержимое, оставив содержимое других тэгов неизменным, так? В принципе, grep-ом это решаемо.
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:48, 09-08-2012 | #4


Аватара для vano42

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


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

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


Anonymоus, именно так.

Отправлено: 12:23, 09-08-2012 | #5


Старожил


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

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


vano42, внешнюю утилиту grep можно взять здесь.

Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion

Set File=file.txt
Set Out=file2.txt
Set NewValue=TestName123

:: Определяем номер строки с искомым тэгом
For /F "delims=:" %%A In ('grep -En "<string name=.u_name.>[^<]*</string>" "%File%"') Do (
	Set Offset=%%A
)

:: Разбираем файл построчно
For /F "usebackq delims=" %%A In ("%File%") Do (
	Set /A i+=1
	rem Пишем всё, что не является искомой строкой в другой файл
	If Not !i!==%Offset% (
		Echo %%A
	) Else (
		For /F "tokens=1,2,3,4 delims=<>" %%A In ('grep -E "<string name=.u_name.>[^<]*</string>" "%File%"') Do (
			rem Проверка на отступ перед тэгом, замена значения
			Echo.%%A|Find "string">nul&&(
				Echo ^<%%A^>%NewValue%^<%%C^>
			)||(
				Echo %%A^<%%B^>%NewValue%^<%%D^>
			)
		)
	)
)>>"%Out%"
Pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:19, 09-08-2012 | #6



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Поиск замена текста csp Скриптовые языки администрирования Windows 31 10-08-2023 07:18
CMD/BAT - [решено] Замена текста в txt Starter1 Скриптовые языки администрирования Windows 17 04-08-2022 18:26
C/C++ - [решено] Поиск и замена текста Simpler Программирование и базы данных 15 01-12-2010 16:03
Офис и Текст - Замена текста Котяра Программное обеспечение Windows 1 29-09-2008 13:51
[решено] Замена тегов по всей таблице в БД Coutty Вебмастеру 9 06-06-2006 07:41




 
Переход