|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Замена текста между тегов |
|
CMD/BAT - [решено] Замена текста между тегов
|
Новый участник Сообщения: 4 |
Здравствуйте,
имеется 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> останется неизменным. Подскажите как заменить текст между тегами выше еслиб были регулярки то чтото вроде |
|
Отправлено: 07:47, 09-08-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать vano42, если:
Цитата vano42:
|
|
Отправлено: 08:34, 09-08-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 08:55, 09-08-2012 | #3 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать vano42, я правильно понимаю, вам нужно найти определённый тэг (<string name="u_name">) и заменить только его содержимое, оставив содержимое других тэгов неизменным, так? В принципе, grep-ом это решаемо.
|
Отправлено: 10:48, 09-08-2012 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Anonymоus, именно так.
|
|
Отправлено: 12:23, 09-08-2012 | #5 |
Старожил Сообщения: 415
|
Профиль | Отправить 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 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|