中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 出题:按特定条件查找文本内容(新手进)
« [1] [2] »
作者:
标题: 出题:按特定条件查找文本内容(新手进) 上一主题 | 下一主题
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 16 楼』:  



  Quote:
Originally posted by 26933062 at 2008-5-24 02:37:

最后一行没有显示出来。

abcd不是最后一行?



批处理之家新域名:www.bathome.net
2008-5-24 02:41
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 17 楼』:  

看我的样本,最后一行是  “下正确”



致精致简!
2008-5-24 02:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 18 楼』:  

报到



简单!简单!再简单!
2008-5-24 03:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 19 楼』:  这样可以不:

加个abcd是不是倒数第二行判断:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (b.txt) do (
    set str=%%i&set /a n+=1
    set _!n!=%%i
    if "!str:~,4!"=="abcd" call :lp
)
set /a m=n-1
set str=!_%m%!
if "!str:~,4!"=="abcd" echo !_%n%!
pause>nul&goto :eof
:lp
if defined c echo !_%c%!
set b=%n%
set /a a=b-1,c=b+1
echo !_%a%!&echo !_%b%!




批处理之家新域名:www.bathome.net
2008-5-24 03:01
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 20 楼』:  

还要考虑 简洁和效率



致精致简!
2008-5-24 03:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 21 楼』:  

发一个  这样处理行不
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
set str=%%i
if "!str:~,4!"=="abcd" echo !var!&echo %%i
set var=%%i
)
pause
我也要分
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
if defined str1 echo !str1!&echo !var!&echo %%i&set str1=
set str=%%i
if "!str:~,4!"=="abcd" set str1=!var!
set var=%%i
)
pause

[ Last edited by terse on 2008-5-24 at 10:33 AM ]

   此帖被 +18 点积分       点击查看详情   
评分人:【 bat-zw 分数: +3  时间:2008-5-24 11:26
评分人:【 26933062 分数: +15  时间:2008-5-24 13:10




简单!简单!再简单!
2008-5-24 10:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 22 楼』:  这下可以了吧:

昨晚思路卡住了:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (b.txt) do (
    set /a n+=1
    set _!n!=%%i
    if !n! geq 3 call :lp
)
pause>nul&goto :eof
:lp
set c=%n%
set /a b=c-1,a=c-2
set str=!_%b%!
if "!str:~,4!"=="abcd" echo !_%a%!&echo !_%b%!&echo !_%c%!
[ Last edited by zw19750516 on 2008-5-24 at 11:18 AM ]



批处理之家新域名:www.bathome.net
2008-5-24 11:16
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 23 楼』:  



  Quote:
Originally posted by terse at 2008-5-24 10:20:
发一个  这样处理行不
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
set str=%%i
if "!str:~,4!"=="abcd" echo !var!& ...

高。。。



批处理之家新域名:www.bathome.net
2008-5-24 11:26
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: