我需要将来自多个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} }
答案 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
请注意\
目录分隔符; /
用于命令切换。