Можно ли средствами cmd объединить однотипные XML-файлы в один?
Дано: очень много однотипных файлов xml вида:
Код:
<?xml version="1.0" encoding="WINDOWS-1251"?>
-<journal>-<MainTable><id>xxx</id><carnumber>xxx</carnumber><videochan>xxx</videochan><channel_id>3</channel_id><passdate>2016-05-06T00:00:00</passdate><passtime>xxx</passtime><direction>xxx</direction><carimage><description>xxx</description><idArchivePath>xxx</idArchivePath></MainTable>
...
...
</journal>
Нужно в обозримые сроки объединить их в один файл .xml, то есть для этого, нужно поместить содержимое всех файлов между тегами:
Код:
<?xml version="1.0" encoding="WINDOWS-1251"?>
-<journal>
...
...
</journal>
А еще, очень бы хотелось возможность удалить из содержимого тег <videochan>xxx</videochan>
|
Цитата:
Цитата uzlprog
Можно ли средствами cmd »
|
Средствами WSH/PoSH.
|
Не подкин ете пример xml-файлов, до и после?
|
Код:
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%A in ('dir/a-d/b "*.xml"') do (
<"%%A">$ (for /f "delims=" %%a in ('more') do @set "x=%%a"& set "x=!x:><=>","<!"& for %%b in ("!x!") do @set "y=%%~b"& echo !y!)
<$>>"file.xml" (for /f "delims=" %%a in ('findstr/rv /c:"<journal>" /c:"<videochan>[0-9]*</videochan>" /c:"</journal>"') do @echo %%a)& del $
)
exit/b
Или в строку
Код:
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%A in ('dir/a-d/b "*.xml"') do (
<"%%A">$ (for /f "delims=" %%a in ('more') do @set "x=%%a"& set "x=!x:><=>","<!"& for %%b in ("!x!") do @set "y=%%~b"& echo !y!)
<$>>"file.xml" (for /f "delims=" %%a in ('findstr/rv /c:"<journal>" /c:"<videochan>[0-9]*</videochan>" /c:"</journal>"') do @<nul set/p=%%a)& del $
)
exit/b
.
|
Время: 08:22.
© OSzone.net 2001-