Batch file Windows批处理条标记

Batch file Windows批处理条标记,batch-file,Batch File,包含HTML代码的文件: IDNAME 1法律 2Andy我喜欢批处理,但老实说:它不是处理xml文件的合适工具。 以下内容更多的是一个逻辑和痛苦的练习,而不是一个合适的解决方案(但至少对你的例子是有效的…): @echo关闭 setlocal EnableDelayedExpansion 对于/f“delims=”(t.txt)中的%%a执行调用:进程“%%a” 后藤:eof :进程 设置“行=%~1” 设置标志=0 集合变量= 对于(0,1100)do中的/l%%i( 如果“!line:

包含HTML代码的文件:


IDNAME
1法律

2Andy
我喜欢批处理,但老实说:它不是处理xml文件的合适工具。 以下内容更多的是一个逻辑和痛苦的练习,而不是一个合适的解决方案(但至少对你的例子是有效的…):

@echo关闭
setlocal EnableDelayedExpansion
对于/f“delims=”(t.txt)中的%%a执行调用:进程“%%a”
后藤:eof
:进程
设置“行=%~1”
设置标志=0
集合变量=
对于(0,1100)do中的/l%%i(
如果“!line:~%%i,1!”==”设置/a标志-=1
)
对于/f“tokens=1,2 delims=:”(!var!)中的%%b,执行echo%%b:%%c
工作原理:
第一个
for
循环处理文本文件的每一行(一行接一行)。

子例程逐字符处理行。每次点击
时,它都会增加
标志
变量,为什么要排除vb?它是一种理解xml格式的scfript语言。批处理不是任务的预定。即使使用第三方工具(如sed)删除标记,
sed-e“s/]*>//g”test.xml
输出仍然包含
IDName
以及Alex和Andy`前面的数字,没有冒号。因此,第三方是可以的。我会考虑它。考虑使用->代码> XPAT.BAT HTML.XML//Tr/TH < /Cord>您使用的脚本工具,共享您的尝试并描述您遇到了什么麻烦!否则,这不是一个问题,而是一个代码请求,这是离题的!请阅读并学习!如何使用此xpath?如何向您寻求更多帮助?我的skype是axxler@Stephan你能给你的代码添加一些注释吗!我发现在这种情况下它非常有用谢谢@Hackoo:添加了一个粗略的描述(我知道,您可以阅读代码
;)
)(注意:代码绝对没有经过优化,只是它是如何成长起来的。有一些陷阱,它肯定不会适用于所有XML)
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%a in (t.txt) do call :process "%%a"
goto :eof

:process
set "line=%~1"
set flag=0
set var=
for /l %%i in (0,1,100) do (
  if "!line:~%%i,1!"=="<" ( 
    set /a "flag+=1" 
    set "var=!var!:" 
  )
  if !flag!==0 set "var=!var!!line:~%%i,1!"
  if "!line:~%%i,1!"==">" set /a flag-=1
)
for /f "tokens=1,2 delims=:" %%b in ("!var!") do echo %%b:%%c