中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » VBS 里有没有类似于 CMD 的 Find?
作者:
标题: VBS 里有没有类似于 CMD 的 Find? 上一主题 | 下一主题
huzixuan
高级用户




积分 537
发帖 219
注册 2006-10-31
来自 芜湖
状态 离线
『楼 主』:  VBS 里有没有类似于 CMD 的 Find?

有一文本内容
123
adb
322
31a
121
hfh
我想找到 包含 "3" 的行
用批处理这样做
@echo off
find "3" test.txt
pause
用 VBS 怎么做? 一个一个读吗?



江湖远
碧空长
路茫茫

    一个人漫无目的的奔跑,风,刺骨的冷....
2007-7-6 10:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

用VBS的正则表达式,搜索一下。

2007-7-6 10:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  

VBSCRIPT.chm 上面的一个例子:
Function RegExpTest(patrn, strng)
   Dim regEx, Match, Matches   ' 建立变量。
   Set regEx = New RegExp   ' 建立正则表达式。
   regEx.Pattern = patrn   ' 设置模式。
   regEx.IgnoreCase = True   ' 设置是否区分字符大小写。
   regEx.Global = True   ' 设置全局可用性。
   Set Matches = regEx.Execute(strng)   ' 执行搜索。
   For Each Match in Matches   ' 遍历匹配集合。
      RetStr = RetStr & "Match found at position "
      RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
      RetStr = RetStr & Match.Value & "'." & vbCRLF
   Next
   RegExpTest = RetStr
End Function
MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


   此帖被 +2 点积分      点击查看详情   
评分人:【 huzixuan 分数: +2  时间:2007-7-6 17:36


2007-7-6 11:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huzixuan
高级用户




积分 537
发帖 219
注册 2006-10-31
来自 芜湖
状态 离线
『第 4 楼』:  

上面那个是什么意思,是从哪里搜索比对的,可以从文本里搜索吗



江湖远
碧空长
路茫茫

    一个人漫无目的的奔跑,风,刺骨的冷....
2007-7-6 12:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 5 楼』:  


set fso=createobject("scripting.filesystemobject")
set file=fso.opentextfile("test.txt")
    s=split(file.readall,vbcrlf):mys=filter(s,"3")
file.close
msgbox join(mys,vbcrlf)
[ Last edited by jmz573515 on 2007-7-6 at 06:10 PM ]

   此帖被 +4 点积分        点击查看详情   
评分人:【 huzixuan 分数: +4  时间:2007-7-6 17:36


2007-7-6 16:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sonicandy
中级用户





积分 273
发帖 91
注册 2007-5-7
状态 离线
『第 6 楼』:  

我来个比较通俗一点的
option explicit '严格语法
dim found,fso,file,str
set fso=createobject("scripting.filesystemobject") '创建文件系统对象
set file=fso.opentextfile("test.txt")                    '打开文件,并得到文件对象
found = "" '初始化缓冲区
while not file.atendofstream '只要文件没有结束就循环
    str = file.readline '读取一行内容
    if instr(str,"3")>0 then '判断是否包含3
        found = found & str & vbcrlf '如果包含就加入到缓冲区
    end if
wend
file.close '关闭文件
msgbox found '显示结果
set fso = nothing'释放对象
set file = nothing '(不知道这句该加么?)
[ Last edited by sonicandy on 2007-7-6 at 10:49 PM ]

   此帖被 +4 点积分        点击查看详情   
评分人:【 huzixuan 分数: +4  时间:2007-7-7 17:14


2007-7-6 22:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 7 楼』:  

set fso=createobject("scripting.filesystemobject")
set op=fso.opentextfile("test.txt")
i_num=0
do while op.atendofstream=false
        line=op.readline
        if instr(1,line,"3")<>0 then
                ret=ret&line&chr(10)
        end if
loop
msgbox (ret)



你好,脚本专家!
<a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a>
2007-7-7 13:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zerocq
中级用户




积分 458
发帖 196
注册 2006-10-5
状态 离线
『第 8 楼』:  

instr函数算是吧??

2007-7-7 17:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: