中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]提取一行中的两个变量,然后查找文本...
作者:
标题: [已结]提取一行中的两个变量,然后查找文本... 上一主题 | 下一主题
ka56
中级用户





积分 234
发帖 129
注册 2006-11-28
状态 离线
『楼 主』:  [已结]提取一行中的两个变量,然后查找文本...

不懂得怎样同时提取两个变量,所以来劳驾各位虾虾.^=~

思路:
想逐行提取A文本的条件字符串,如第一行提取"----"前的数字"520"和"----"后的"我爱你"这两个变量,然后搜索B文本带520尾的行,最后再将这行加变量"我爱你"写入C文本.

A.TXT:
520----我爱你
521----我爱你
168----一路发
530----我想你

B.TXT:
891204168
901104478
850205520
841203183
870110521
800129530

想得到的结果(C.TXT):
891204168 一路发
850205520 我爱你
870110521 我爱你
800129530 我想你

[ Last edited by ka56 on 2009-9-20 at 10:28 ]

2009-9-20 09:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
q8249014
初级用户





积分 175
发帖 45
注册 2007-8-4
状态 离线
『第 2 楼』:  

请测试
@echo off
for /f "tokens=1* delims=----" %%i in (a.txt) do (
   for /f %%a in ('findstr "%%i" b.txt') do (echo.%%a %%j)
)
pause
[ Last edited by q8249014 on 2010-1-21 at 17:45 ]

2009-9-20 10:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ka56
中级用户





积分 234
发帖 129
注册 2006-11-28
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by q8249014 at 2009-9-20 10:06:
请测试

[code]
@echo off&setlocal enabledelayedexpansion
(for /f "tokens=1* delims=----" %%i in (a.txt) do (
   set var="%%i"
   for /f %%a in ('findstr "!var! ...

感谢您抽空指教,测试通过,我还有两点不懂,!var! 和%var%作用一样吗?"我爱你"是怎样传到%%j的 ?

2009-9-20 10:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
q8249014
初级用户





积分 175
发帖 45
注册 2007-8-4
状态 离线
『第 4 楼』:  

这点一两句说不清楚 你可以去论坛搜索"延迟变量" 看过你就明白了

"?"我爱你"是怎样传到%%j的 ?" 这点儿你只要看下for命令的帮助就可以了

2009-9-20 10:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ka56
中级用户





积分 234
发帖 129
注册 2006-11-28
状态 离线
『第 5 楼』:  

嗯,好的,再次感谢!!感谢热心人!

2009-9-20 10:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: