VBS脚本实现遍历批量替换多目录多文件内容的代码
有时候我们需要将一个目录与子目录中的多个htm网页文件实现批量替换,这里就为大家分享一下
将以下代码复制到一个文本文档中,并将文本文档的后缀修改为.vbs,直接运行即可
SetWshShell=CreateObject("Wscript.Shell")
WshShell.Run"cmd/cdir/s/b*.htm>list.htm",vbHide
Wscript.Sleep1000
sFile="list.htm"
SetobjFSO=CreateObject("Scripting.FileSystemObject")
SetoFile=objFSO.OpenTextFile(sFile,1)
DoWhileNotoFile.AtEndOfStream
strLine=oFile.ReadLine
IfLen(strLine)>0Then
SetFile=objFSO.OpenTextFile(strLine,1)
aryLines=File.ReadAll
File.Close
aryLines=Replace(aryLines,"需要替换的内容","替换后的内容")
SetFile=objFSO.OpenTextFile(strLine,2)
File.WritearyLines
File.Close
EndIf
Loop
oFile.Close
objFSO.DeleteFilesFile
SetobjFSO=Nothing
cmd/cdir/s/b*.htm>list.htm就是将子目录中所哟的htm文件列出来保存到list.htm文件中。
文件替换就是通过vbs中的FileSystemObject实现批量替换,具体的可以参考这篇文章
如果替换的内容中包含有转义字符的话,需要注意转义一下
PS:VBScript的相关转义字符:
"/"(反斜杠)
VbCrLf(换行符,用来表示重起一行)
VbTab(水平制表符)
Chr(8)(退格符)
vbCr(回车符)
"'"(单引号)
/"->""(双引号)