怎么用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

 

参考技术A

请看下面的代码:

On Error Resume Next
Dim 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操作一个文本文件的主要内容,如果未能解决你的问题,请参考以下文章

如何用VBS打开一个程序

如何用VBS逐行读取文本文件的内容,并输入变量

vbs读取指定的文本内容

关于VBS读取TXT文本问题

vbs实现的支持拖动的txt文本切割器

读取文本文件中的内容并使用 VBS 将其替换为另一个文本文件中的指定文本