如何用批处理结合VBS实现批量替换修改txt文本???
我这D:\1\目录里有很多TXT文档,1.txt,2.txt,3.txt.........里面有2处内容需要替换:“name=1”替换成“name=19”,还有“path...
我这D:\1\目录里有很多TXT文档,1.txt,2.txt,3.txt.........
里面有2处内容需要替换:
“name=1”替换成“name=19”,
还有“path=e:game”替换成“path=e:\game”
因为bat很难实现对txt的替换,我这有2个VBS分别替换2处,要运行2个VBS才可以替换成功1个txt文本,问题是运行1次bat不可以打开2个vbs,而且郁闷的是要指定路径D:\1\1.txt,这样每次要修改,有没有可以结合bat和vbs同时批量替换2处的,谢谢!下面是我的代码:
Set FSO = Nothing
Dim strFile: strFile = "D:\1\1.txt"
Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim objFile: Set objFile = FSO.OpenTextFile(strFile)
Dim strContent: strContent = objFile.Readall
objFile.Close
Dim objRegEx: Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Global = True
objRegEx.IgnoreCase = True
objRegEx.Pattern = "path=e:game"
Dim objNewText: objNewText = objRegEx.Replace(strContent,"path=e:\game")
Dim objTextFile: Set objTextFile = FSO.CreateTextFile("D:\1\1.txt")
objTextFile.Write objNewText
objTextFile.Close
Set FSO = Nothing 展开
里面有2处内容需要替换:
“name=1”替换成“name=19”,
还有“path=e:game”替换成“path=e:\game”
因为bat很难实现对txt的替换,我这有2个VBS分别替换2处,要运行2个VBS才可以替换成功1个txt文本,问题是运行1次bat不可以打开2个vbs,而且郁闷的是要指定路径D:\1\1.txt,这样每次要修改,有没有可以结合bat和vbs同时批量替换2处的,谢谢!下面是我的代码:
Set FSO = Nothing
Dim strFile: strFile = "D:\1\1.txt"
Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim objFile: Set objFile = FSO.OpenTextFile(strFile)
Dim strContent: strContent = objFile.Readall
objFile.Close
Dim objRegEx: Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Global = True
objRegEx.IgnoreCase = True
objRegEx.Pattern = "path=e:game"
Dim objNewText: objNewText = objRegEx.Replace(strContent,"path=e:\game")
Dim objTextFile: Set objTextFile = FSO.CreateTextFile("D:\1\1.txt")
objTextFile.Write objNewText
objTextFile.Close
Set FSO = Nothing 展开
2个回答
展开全部
突然来了点灵感,给你来一行另类的。
注意,代码只有一行。。
批处理 放在txt文件夹下运行
@echo off& for %%1 in (*.txt)do mshta vbscript:createobject("scripting.filesystemobject").opentextfile("wind-%%~1",2,true).writeline(replace(replace(createobject("scripting.filesystemobject").opentextfile("%%~1",1).readall,"name=1","name=19"),"path=e:game","path=e:\game"))(window.close)&& move "wind-%%~1" "%%~1"
注意,代码只有一行。。
批处理 放在txt文件夹下运行
@echo off& for %%1 in (*.txt)do mshta vbscript:createobject("scripting.filesystemobject").opentextfile("wind-%%~1",2,true).writeline(replace(replace(createobject("scripting.filesystemobject").opentextfile("%%~1",1).readall,"name=1","name=19"),"path=e:game","path=e:\game"))(window.close)&& move "wind-%%~1" "%%~1"
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |