批处理命令 显示所要查找字符串所在行的下面行内容—急~~~在线等~!

我需要从下面文件中将<fmoduleId>1</fmoduleId>和<fmoduleId>249</fmoduleId>的ip地址取出保存:<config><route... 我需要从下面文件中将<fmoduleId>1</fmoduleId>和<fmoduleId>249</fmoduleId>的ip地址取出保存:
<config>
<route>
<nodeName>1</nodeName>
<nodeType>1</nodeType>
<deviceId>20</deviceId>
<fmoduleId>1</fmoduleId>
<bmoduleId>129</bmoduleId>
<ip>129.0.31.254</ip>
<port>5057</port>
</route>

<route>
<nodeName>1</nodeName>
<nodeType>1</nodeType>
<deviceId>20</deviceId>
<fmoduleId>249</fmoduleId>
<bmoduleId>129</bmoduleId>
<ip>129.0.31.249</ip>
<port>5057</port>
</route>
</config>
再请教下,if下面的几个SET没有看明白?在指点下~!谢谢~!
展开
 我来答
fastslz
2010-03-02 · TA获得超过938个赞
知道小有建树答主
回答量:561
采纳率:100%
帮助的人:903万
展开全部
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,* delims=: " %%a in ('findstr /n .* "a.txt"') do (
set "num=%%a"
set "var=%%b"
if /i "!var:~0,11!"=="<fmoduleId>" (
set "fmoduleId=!var:~11!"
set "fmoduleId=!fmoduleId:>=!"
set "fmoduleId=!fmoduleId:<=!"
set "fmoduleId=!fmoduleId:/=!"
set "fmoduleId=!fmoduleId:fmoduleId=!"
call :slz
echo !fmoduleId! !ip!
))
pause&exit

:slz
set "ip="
set /a num+=1
for /f "delims= " %%i in ('more +!num! a.txt') do if not defined ip set "ip=%%i"
set "ip=!ip:>=!"
set "ip=!ip:<=!"
set "ip=!ip:/=!"
set "ip=!ip:ip=!"

如楼主贴出来的内容另存为a.txt,运行上面的批处理得到结果如下
1 129.0.31.254
249 129.0.31.249
请按任意键继续. . .

不保证其他内容也能符合要求,但至少已经达到了楼主给出的这部分内容的处理要求,cmd怕特殊字符和管道符是最致命的缺陷!

if /i "!var:~0,11!"=="<fmoduleId>"
rem if不区分大小写对比变量var的前11个字符是不是<fmoduleId>,也是这个语句去判断<fmoduleId>所在行的
!var:~0,11!用法可以在set/?里寻求解答

就悬赏10,有完没完啊!问题也超过了你的范围
set 用法当然看set/?
----------------------------------------------------------
环境变量替换已如下增强:

%PATH:str1=str2%

会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1
要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。
"str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的
开始到 str1 剩余部分第一次出现的地方,都一直保持相配。
----------------------------------------------------------
自己去试吧
set var=abc
echo %var%
set var=%var:a=1%
echo %var%
set var=%var:b=%
echo %var%
set var=%var:c=C%
echo %var%
余明煦3o
2010-02-27 · TA获得超过439个赞
知道小有建树答主
回答量:1389
采纳率:0%
帮助的人:744万
展开全部
@echo off
type a.txt|find /i "ip">>b.txt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式