我是编写批处理脚本的初学者,非常感谢您对此的帮助。
下面是 xml,我需要将标志为“on”的所有名称提取到 txt 文件中。还有其他几个类别标签实例。
<Head>
<Category
name="RIVERTD"
flag="on"
location="SG002">
</Category>
<Category
name="BRETRED"
flag="on"
location="IT213">
</Category>
<Category
name="AMERAND"
flag="off"
location="US212">
</Category>
</Head>
所以,我正在寻找的输出如下
RIVERTD
BRETRED
我尝试使用下面的代码
@echo off
setlocal disableDelayedExpansion
set input="CP.xml"
set output="Names.txt"
if exist %output% del %output%
for /f "delims=" %%A in ('findstr /n /c:"name=" %input%') do (
set "ln=%%A"
setlocal enableDelayedExpansion
call :parseLine
endlocal
)
type %output%
exit /b
:parseLine
set "ln2=!ln:*name=!"
if "!ln2!"=="!ln!" exit /b
for /f tokens^=2^ delims^=^" %%B in ("!ln2!") do (
setlocal disableDelayedExpansion
>>%output% echo(%%B
endlocal
)
set "ln=!ln2!"
goto :parseLine
这给了我结果
RIVERTD
BRETRED
AMERAND
但是,此代码不会根据标志过滤名称。我是初学者。请帮助添加基于标志的过滤器。非常感谢。