![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 12:23 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求教: 如何实现在文件中搜索一个字符串 |
| 可打印版本 1,720 / 1 |
| 第1楼 linkejin | 发表于 2011-01-21 16:06 |
| 新手上路 发帖 1 积分 1 | |
|
求教: 如何实现在文件中搜索一个字符串 求教,我想在批处理脚本中实现在一系列文件中搜索一字符串,如果在每个文件中都搜索到,就打印成功,若有一个找不到,打印失败。
刚开始我想用find来实现的,但发现无论find是否能在文件中找到字符串,返回值均是零。 后来我又写了个脚本 @echo off cd warn for %%i in (*) do ( echo %%i set testflag=false for /F "delims=" %%j in (%%i) do ( if "%%j" == "PC-LINT Check Completed!" set testflag=yes ) echo ==%testflag%=== if not "%testflag%" == "yes" goto :break echo %%i is matched ) set completed=true echo %completed% cd .. goto :end :break echo "havenot completed" cd .. :end 遍历目录下的每个文件,看下面是否有对应的语句,结果发现,执行的效果很诡异 同样的程序,一次是成功的,一次是失败的 E:\dostest>test cpeserver_warn ==false=== "havenot completed" E:\dostest>test cpeserver_warn ==false=== "havenot completed" E:\dostest>test cpeserver_warn ==yes=== cpeserver_warn is matched db_warn ==yes=== db_warn is matched dhcp6s_warn ==yes=== dhcp6s_warn is matched true |
|
| 第2楼 Hanyeguxing | 发表于 2011-01-21 16:23 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
[ Last edited by Hanyeguxing on 2011-1-21 at 16:30 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |