DOS批处理:在唯一的TXT文件中附加XML标记

时间:2014-10-31 13:37:56

标签: xml batch-file

我需要将来自多个XML文件的<AAA></AAA> XML标记的内容列入唯一的TXT结果文件。假设我有一个文件夹&#39; D:/文件夹&#39;它包含几个XML文件。

这是我的代码:

@echo off

cd D:/

for %%f in (folder/*.xml) do (

    for /f %%a in (%%f) do (

        for /f "delims=<AAA></AAA> tokens=2" %%b in ('echo "%%a" ^| Findstr /r  "<AAA>"') do echo %%b >> result.txt

    )

)

代码正在为第一个XML文件执行任务但后来找不到其他的... Shell窗口显示错误消息(请参阅附图;抱歉,它是法语的)。{{0} }

1 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"

FOR /f "tokens=3delims=<>" %%a IN ('findstr /L /c:"<AAA>" "%sourcedir%\*.xml"^|findstr /L /c:"</AAA>"') DO ECHO %%a

GOTO :EOF

您需要更改sourcedir的设置以适合您的具体情况。

您不会使用您的真实标签; "delims="建立了一组分隔符,而不是分隔符字符串。

如果您的tokens=3标记没有缩进,则可能需要将tokens=2更改为AAA。如果它可能会缩进,也可能不会缩进,那么例程就需要稍微改变一下。

可能不需要关闭标签上的第二个过滤器。一切都取决于您没有告诉我们的内容 - 您的实际布局。

如果有问题的行是

,这应该有效
spaces<AAA>stingyouwant</AAA>whatever

请注意\目录分隔符; /用于命令切换。