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

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

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

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


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

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


Есть 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
Если указывать явно, что на что менять то проблем нет. Но я не всегда заранее знаю, что в этом файле. А вот так что-бы заменить
Код: Выделить весь код
<code>???</code>
- хоть убей ничего не выходит.
Не помог ни sed for Windows(хотя с ним я возможно не разобрался как следует, но уже сил не хватило моральных) ни CHGSTR.EXE(последний позволяет задать параметры поиска только для всей строки. а менять дату в этой строке нельзя.)
Спасибо.

Отправлено: 03:48, 28-03-2010

 

Забанен


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

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


Nike-jersey, Вы бы привели пример файла. Примерное решение будет таким:
Код: Выделить весь код
@echo off
  setlocal enabledelayedexpansion
    @<my.xml>my.xml:s1 (for /f "delims=" %%i in ('more') do (
      echo:"%%~i"|>nul findstr /irc:"office\\admin"&&(
        set "s=%%~i"
        echo !s:office\admin=Domain\User!
      )||echo:%%~i
    ))&&(more < my.xml:s1 > my.xml)
  endlocal
exit /b

Последний раз редактировалось greg zakharov, 28-05-2017 в 07:35.

Это сообщение посчитали полезным следующие участники:

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



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

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


Ветеран


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

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


greg zakharov, не, я конечно, понимаю тягу к изыскам, но не настолько же неуёмным: то, что оригинальный файл в итоге так и остаётся с дополнительным потоком, не есть хорошо и правильно.

Отправлено: 06:02, 26-05-2017 | #12


Забанен


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

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


Iska, при перезаписи основного потока ADS затирается. Если нет, загляните в групповые политики.

Отправлено: 09:20, 26-05-2017 | #13


Ветеран


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

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


Цитата greg zakharov:
Iska, при перезаписи основного потока ADS затирается. »
Я не вижу этого у Вас в коде. Я вижу только:
Цитата greg zakharov:
> out.txt »

Отправлено: 10:37, 26-05-2017 | #14


Забанен


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

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


Iska, очепятка. Бывает.

Отправлено: 07:36, 28-05-2017 | #15


Ветеран


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

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


greg zakharov, ясно. Бывает. Сам только вчера в выложенном коде по недосмотру отладочную строку оставил.

Отправлено: 07:59, 28-05-2017 | #16


Забанен


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

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


Iska, спасибо за проявленную бдительность.

Отправлено: 21:36, 28-05-2017 | #17


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


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

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


Цитата greg zakharov:
@echo off
setlocal enabledelayedexpansion
@<my.xml>my.xml:s1 (for /f "delims=" %%i in ('more') do (
echo:"%%~i"|>nul findstr /irc:"office\\admin"&&(
set "s=%%~i"
echo !sffice\admin=Domain\User!
)||echo:%%~i
))&&(more < my.xml:s1 > my.xml)
endlocal
exit /b »
Спасибо за код, но по окончанию у меня строка меняется на
<UserId>Domain\User</UserId>

Отправлено: 16:54, 06-06-2017 | #18


Забанен


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

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


Цитата Nike-jersey:
Спасибо за код, но по окончанию у меня строка меняется на
<UserId>Domain\User</UserId>
Как подсказывает капитан Очевидность нужно заменять Domain\User в коде самого бата на свои, а если это делать влом, то параметризируйте сам бат и будет Вам счастье. Прочие консультации только за деньги вопросы в том же духе умаляют энтузиазм, так что имейте в виду.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:13, 07-06-2017 | #19



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как заставить броузер считать результат работы скрипта файлом 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




 
Переход