CMD/BAT - Можно ли средствами cmd объединить однотипные XML-файлы в один?

Ответить
Аватара пользователя
uzlprog

CMD/BAT - Можно ли средствами cmd объединить однотипные XML-файлы в один?

Сообщение uzlprog »

Дано: очень много однотипных файлов 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>

А еще, очень бы хотелось возможность удалить из содержимого тег xxx
Аватара пользователя
alpap

Re: CMD/BAT - Можно ли средствами cmd объединить однотипные XML-файлы в один?

Сообщение alpap »

Код:

Код: Выделить всё

@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

.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»