有時候我們需要將一個目錄與子目錄中的多個htm網頁文件實現批量替換,這里就為大家分享一下
將以下代碼復制到一個文本文檔中,并將文本文檔的后綴修改為.vbs,直接運行即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
Set WshShell = CreateObject( "Wscript.Shell" ) WshShell.Run "cmd /c dir /s/b *.htm > list.htm" ,vbHide Wscript.Sleep 1000 sFile = "list.htm" Set objFSO = CreateObject( "Scripting.FileSystemObject" ) Set oFile = objFSO.OpenTextFile(sFile,1) Do While Not oFile.AtEndOfStream strLine = oFile.ReadLine If Len(strLine) > 0 Then Set File = objFSO.OpenTextFile(strLine, 1) aryLines = File.ReadAll File.Close aryLines = Replace(aryLines, "需要替換的內容" , "替換后的內容" ) Set File = objFSO.OpenTextFile(strLine, 2) File.Write aryLines File.Close End If Loop oFile.Close objFSO.DeleteFile sFile Set objFSO = Nothing |
cmd /c dir /s/b *.htm > list.htm就是將子目錄中所喲的htm文件列出來保存到list.htm文件中。
文件替換就是通過vbs中的FileSystemObject實現批量替換,具體的可以參考這篇文章
如果替換的內容中包含有轉義字符的話,需要注意轉義一下
PS:VBScript的相關轉義字符:
"/" (反斜杠)
VbCrLf (換行符,用來表示重起一行)
VbTab (水平制表符)
Chr(8) (退格符)
vbCr (回車符)
"'" (單引號)
/" - > "" (雙引號)