怎么用vbs操作一个文本文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用vbs操作一个文本文件相关的知识,希望对你有一定的参考价值。
我有一个文本文件 内容为
A:good morning
B:very happy
C:nice man
我想搜索nice,然后把nice所在行的所有文本都复制出来,请问一下代码应该怎么写?我觉得难点在于匹配nice和复制所在行。请大侠指教。
把文本文件处理为数组,每行为一个数组元素,然后在每个元素中查找关键词,vbs可以直接使用instr函数来查找,也可以使用正则表达式查找。找到后把那个数组元素复制出来就可以了。
第一种,使用instr
c = split(createobject("scripting.filesystemobject").opentextfile("a.txt").readall,vbcrlf)for i = 0 to ubound(c)
if instr(c(i),"nice") then msgbox c(i)
next
第二种,使用正则表达式
c = split(createobject("scripting.filesystemobject").opentextfile("a.txt").readall,vbcrlf)for i = 0 to ubound(c)
if rt("nice",c(i)) then msgbox c(i)
next
Function rt(patrn,str)
set regex=new regexp
regex.pattern = patrn
regex.ignorecase = false
rt = regex.test(str)
End Function
请看下面的代码:
On Error Resume NextDim aa,run,WinDirPath,msg,line,file,op,words
Set aa=Wscript.CreateObject("Scripting.FileSystemObject")
Set run=Wscript.CreateObject("Wscript.Shell")
WinDirPath=aa.GetSpecialFolder(WindowsFolder)
input
sub input()
file=InputBox("请输入要操作的文件的全路径","输入文本文件全路径","")
if aa.FileExists(file)=false Then
MsgBox "您指定的路径不存在,请重新输入。",0+16,"错误"
input
End if
End sub
line=InputBox("请输入要搜索的字符","输入要搜索的字符","")
run.run "cmd.exe /c findstr /i "+Chr(34) & line & Chr(34)+" "+Chr(34) & file & Chr(34)+">"+Chr(34)+"%SystemRoot%\\外星小子哆布哆的家-SystemRoot闲人勿进!!!!!!!.log"+Chr(34),0
Do
Loop While aa.FileExists(WinDirPath & "\\外星小子哆布哆的家-SystemRoot闲人勿进!!!!!!!.log")=false
Set op=aa.OpenTextFile(WinDirPath & "\\外星小子哆布哆的家-SystemRoot闲人勿进!!!!!!!.log",1)
words=op.ReadLine
op.Close
aa.DeleteFile(WinDirPath & "\\外星小子哆布哆的家-SystemRoot闲人勿进!!!!!!!.log")
if words="" Then
MsgBox "抱歉,读取失败!",0+16,"读取失败"
End if
msg=MsgBox("读取行成功!读取到的内容:" & Chr(13) & words & Chr(13) & "是否打开文件?",4+32,"提示")
if msg=7 Then
Wscript.Quit
End if
run.run file
经过测试,完美运行(这个词是学别人的(*^__^*) 嘻嘻……),请您采纳!!!
以上是关于怎么用vbs操作一个文本文件的主要内容,如果未能解决你的问题,请参考以下文章