|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] работа с XML файлом |
|
|
CMD/BAT - [решено] работа с XML файлом
|
Новый участник Сообщения: 27 |
Есть xml файл, следующего содержания:
<?xml version="1.0" encoding="utf-8"?> <process><datetime>2010-03-27T12:01:35+02:00</datetime><code>500</code></process> Цифры заключенные в теге code(в данном случае 500), так же варьируются(например 200, 250, 400, 500, 2000 и т.д.) Задача: Заменить из командной строки, цифры заключённые в теге code на 100 Если указывать явно, что на что менять то проблем нет. Но я не всегда заранее знаю, что в этом файле. А вот так что-бы заменить - хоть убей ничего не выходит. Не помог ни sed for Windows(хотя с ним я возможно не разобрался как следует, но уже сил не хватило моральных) ни CHGSTR.EXE(последний позволяет задать параметры поиска только для всей строки. а менять дату в этой строке нельзя.) Спасибо. |
|
Отправлено: 03:48, 28-03-2010 |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать taravasya,
@echo off setlocal EnableDelayedExpansion set "Source=C:\Temp\Test.xml" set "Output=C:\Temp\Test_output.xml" set n=0 for /f "tokens=*" %%a in ('type %Source%') do ( set /a n+=1 set "str=%%a" if !n! NEQ 1 ( for /f "tokens=2-6* delims==>" %%b in ('set str') do ( echo %%b^>%%c^>%%d^>%%e^>100^</code^>%%g>>%Output% ) ) else ( for /f "tokens=1* delims==" %%b in ('set str') do ( echo %%c>>%Output% ) ) ) |
Отправлено: 12:56, 28-03-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать Ох..... Спасибо. Уже не в первый раз выручаете. Сам бы, ни за что не составил бы такой скрипт....
Теперь остаётся прочитать Test_output.xml, и заменить его содержимым, содержимое Test.xml. С этим я думаю справлюсь. Ещё раз спасибо. |
Отправлено: 13:44, 28-03-2010 | #3 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Приветствую!
У меня схожая задача, поэтому надеюсь добрые люди здесь помогут. Дано: XML файл. В нём есть строка <UserId>OFFICE\Admin</UserId> и нужно написать bat файл для автоматического редактирования OFFICE\Admin на имя ПК и имя текущего пользователя. Какие в таком случае нужно использовать переменные? Я второй день постигаю искусство написания скриптов. Вчера написал свой первый скрипт по пересозданию задания планировщика задач Windows. Прошу помощи. |
Отправлено: 16:41, 19-05-2017 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Nike-jersey,
если ничего "экзотического" в строках нет, будет работать и это: @echo off setlocal enabledelayedexpansion set "f=file.xml" &: Файл в котором будет замена set "sf=UserId" &: Поиск строки "<UserId>OFFICE\Admin</UserId>" set "sz=%Computername%\%Username%" &: Здесь указать что вместо "OFFICE\Admin" <"%f%">$ (for /f "delims=" %%A in ('more') do @echo "%%~A"|>nul find "%sf%" && ( for /f "tokens=1-3 delims=<>" %%a in ("%%~A") do @set "z=%%b"& echo:^<%%a^>!z:%%b^=%sz%!^<%%c^> ) || ( echo %%A ) )& >nul move $ "%f%" exit |
|
Отправлено: 17:42, 19-05-2017 | #5 |
Забанен Сообщения: 793
|
|
Отправлено: 22:40, 19-05-2017 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать greg zakharov, речь про это: XMLStarlet - Wikipedia? Я не работал. Как он Вам показался?
|
Отправлено: 01:07, 20-05-2017 | #7 |
Забанен Сообщения: 793
|
Iska, речь именно о нем. Кто бы что о нем не говорил, вещь очень хорошая. Если в трех словах - sed для xml. И этим, в общем-то, все сказано. Плохо, правда, что под Windows из исходников собирается с полпинка.
|
Отправлено: 17:03, 20-05-2017 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать greg zakharov, спасибо, ясно.
|
Отправлено: 17:40, 20-05-2017 | #9 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Цитата alpap:
Стало Я попытался разобраться, что-то сложно. |
|
Отправлено: 15:17, 25-05-2017 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как заставить броузер считать результат работы скрипта файлом XML ? | Vlad Drakula | Вебмастеру | 4 | 17-07-2013 21:04 | |
[решено] С этим XML-файлом не связана ни одна таблица стилей. Ниже показано дерево элементов. | Artem-Samsung | Вебмастеру | 9 | 14-03-2012 21:52 | |
[решено] Работа с XML | snoitaleR | AutoIt | 7 | 17-02-2009 07:57 | |
Разное - Работа с файлом | hhh8486 | Вебмастеру | 1 | 23-11-2007 20:43 | |
работа с XML на CPP | Vlad Drakula | Программирование и базы данных | 1 | 14-01-2004 00:49 |
|