如何用vbs替换文件中的包含某些字符的一行的内容,如果这行包含了12356,那么就不替换这行
接下面的问题如何用vbs替换文件中的包含某些字符的一行的内容,如果这行包含了12356,那么就不替换这行,请问如何实现啊?谢谢!呵呵http://wenda.tianya...
接下面的问题 如何用vbs替换文件中的包含某些字符的一行的内容, 如果这行包含了12356,那么就不替换这行,请问如何实现啊? 谢谢!呵呵 http://wenda.tianya.cn/wenda/ thread?tid=417fd3112f66e751
展开
1个回答
展开全部
Set fso=Wscript.CreateObject(" Scripting.FileSystemObject") set f=fso.opentextfile("a.txt") dim arr,s arr=split(f.readall,vbCrlf) '将a.txt的内容以vbcrlf换行符分成数组 for i=0 to ubound(arr)'循环处理每一行 if i>0 then s = s & vbcrlf if Instr(1,arr(i),"D:\",1)>0 and Instr(1,arr(i),"123456\",1)=0 then '若该行包含D:\且不包含123456\ s = s & "E:\"'把该行替换为E:\ Elseif Instr(1,arr(i),"C:\",1)>0 and Instr(1,arr(i),"F2556\",1)=0 then '否则,若该行包含C:\且不包含F2556\ s = s & "G:\" '把该行替换为G:\ Elseif Instr(1,arr(i),"333",1)>0 and Instr(1,arr(i),"123",1)=0 then '否则,若该行包含333且不包含123 s = s & "G:\" '把该行替换为G:\ Elseif Instr(1,arr(i),"444",1)>0 and Instr(1,arr(i),"234",1)=0 then '否则,若该行包含444且不包含234 s = s & "G:\" '把该行替换为G:\ Else '否则 s = s & arr(i) '该行不做处理 End if Next f.close set r=fso.opentextfile("a.txt",2, true) r.write s Wscript.quit InStr([start, ]string1, string2[, compare]) 参数 start 可选项。数值表达式,用于设置每次搜索的开始位置。如果省略, 将从第一个字符的位置开始搜索。如果 start 包含 Null,则会出现错误。 如果已指定 compare,则必须要有 start 参数。 string1 必选项。接受搜索的字符串表达式。 string2 必选项。要搜索的字符串表达式。 compare 可选项。指示在计算子字符串时使用的比较类型的数值。有关数值, 请参阅“设置”部分。 如果省略,将执行二进制比较。 二进制比较区分大小写,文本比较不区分 InStr 函数返回以下值: 如果InStr 返回 string1 为零长度 0 string1 为 Null Null string2 为零长度 start string2 为 Null Null string2 没有找到 0 在string1 中找到 string2 找到匹配字符串的位置 start > Len(string2) 0
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询