我正在解析xml,并试图在一个txt文件中编写所有格式良好和有效的xmls (请参阅string1)。另一种类型的xml应该写入另一个txt文件中(参见字符串2,3)。应该分析的xml文件始终具有以下结构:
<status>Well-Formed and valid</status> 或
<status>Well-Formed, but not valid </status>或
<status>Not well-formed </status>问题是,我只能用string1捕获xmls。在txt文件中没有string2和string3的xmls输出。我不明白为什么?
set string1=Well-Formed and valid
set string2=Well-Formed, but not valid
set string3=Not well-formed
for /f %%i in ('dir /b /s C:\Users\NekhayenkoO\outputxml\') do (
for /f "tokens=3 delims=>/<" %%h in ('find "%string3%" %%i ') do (
echo %%~ni %%h >> C:\Users\N\outputxml\formed2.txt
)
for /f "tokens=3 delims=>/<" %%h in ('find "%string1%" %%i ') do (
echo %%~ni %%h >> C:\Users\N\outputxml\Well-formed_and_valid.txt
)
for /f "tokens=3 delims=>/<" %%h in ('find "%string2%" %%i ') do (
echo %%~ni %%h >> C:\Users\N\outputxml\formed1.txt
)
)发布于 2016-10-25 13:32:19
我对您提供的文件进行了快速修改,以满足这样一个事实:您在每个内部循环中使用的是相同的%h,而且您的find命令输出没有产生预期的输出。
set string1=Well-Formed and valid
set string2=Well-Formed, but not valid
set string3=Not well-formed
for %%i in (j k l) do (set %%i=0)
for /f "delims=" %%i in ('dir/b/s C:\Users\NekhayenkoO\outputxml') do (
for /f "tokens=3 delims=>/<" %%j in ('find "%string3%"^<"%%i"') do (
set/a j+=1
>>C:\Users\N\outputxml\formed2.txt echo %%~ni %%j)
for /f "tokens=3 delims=>/<" %%k in ('find "%string1%"^<"%%i"') do (
set/a k+=1
>>C:\Users\N\outputxml\Well-formed_and_valid.txt echo %%~ni %%k)
for /f "tokens=3 delims=>/<" %%l in ('find "%string2%"^<"%%i"') do (
set/a l+=1
>>C:\Users\N\outputxml\formed1.txt echo %%~ni %%l))
echo=totals&echo=%string1%=%i%&echo=%string3%=%j%&echo=%string3%=%k%看看能不能帮上忙。
https://stackoverflow.com/questions/40240168
复制相似问题