用vbs文件 或者bat文件 修改TXT文件 50

我有个文件a.txt内容大致是……(其他内容)<pr_code>*************</pr_code><pr_date>*************</pr_dat... 我有个文件 a.txt
内容大致是
……(其他内容)
<pr_code>*************</pr_code>
<pr_date>*************</pr_date>

……(其他内容)

*************为一串乱码,次次都不同的

我希望能运行一个批处理,能把a.txt文件的
<pr_code>一串乱码,次次都不同</pr_code>
<pr_date>一串乱码,次次都不同</pr_date>

变成:
<pr_code></pr_code>
<pr_date></pr_date>
其他内容不变,如何实现呢?
能用的答案再追加50分!
展开
 我来答
woliuguojian
2012-03-27 · TA获得超过150个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:185万
展开全部
oFile = "D:\a.txt" '这里修改为你的文件路径
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(oFile, 1)
str = f.ReadAll
f.Close
Set objFile = fso.OpenTextFile(oFile,1)
do until objFile.atendofstream
strline=objFile.readline
if left(strline,9) = "<pr_code>" and right(strline,10) = "</pr_code>" then
str = replace(str,strline,left(strline,9)&right(strline,10))
ElseIf left(strline,10) = " <pr_date>" and right(strline,10) = "</pr_date>" then
str = replace(str,strline,left(strline,10)&right(strline,10))
end if
loop
objFile.close
Set f = fso.OpenTextFile(oFile, 2, True)
f.Write str
f.Close
————————
一楼的正则感觉有点不必要
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
caruko
2012-03-26 · TA获得超过277个赞
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:103万
展开全部
批处理只怕不行~~
网页多数是 utf-8 或者 gb2312编码,BAT无能为力。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5311d79
2012-03-26 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3214万
展开全部
以下为vbs文件:

Const ForReading = 1, ForWriting = 2
Dim fso, f, oFile, str

oFile = "D:\a.txt" '这里修改为你的文件路径
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(oFile, ForReading)
str = f.ReadAll
f.Close
'MsgBox str
str = RegExpReplace("<pr_code>.+</pr_code>", str, "<pr_code></pr_code>")
str = RegExpReplace("<pr_date>.+</pr_date>", str, "<pr_date></pr_date>")
'MsgBox str
Set f = fso.OpenTextFile(oFile, ForWriting, True)
f.Write str
f.Close

Function RegExpReplace(patrn, strOrig, strReplace)
Dim regEx, Match, Matches ' Create variable.

Set regEx = New RegExp ' Create a regular expression.
regEx.Pattern = patrn ' Set pattern.
regEx.IgnoreCase = True ' Set case insensitivity.
regEx.Global = True ' Set global applicability.
RetStr = regEx.Replace(strOrig, strReplace)
Set regEx = Nothing

RegExpTest = RetStr
End Function
追问
str = RegExpReplace(".+", str, "")
'str = RegExpReplace(".+", str, "")
MsgBox str

这里运行到msgbox 显示是空白了
追答
函数名改了,返回值赋值的时候忘记也改过来了。。。汗!!

把 RegExpReplace 函数里最后一句:
RegExpTest = RetStr
改为:
RegExpReplace = RetStr
就行了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式