指定ディレクトリ配下にある、テキストファイルの中身を置換するスクリプト。
Call replace(“D:\dev\WSH\テストフォルダ”, “てすとA” & vbCrLf & “てすとB” & vbCrLf, “”)
赤いのがパス、青が置換したい文字列、オレンジが置換後の文字列。
複数行にマッチングするようになってます。
エンジニアでもあまり使う機会がないと思うけれど、自分用の覚書。
Call replace("D:\dev\WSH\テストフォルダ", "てすとA" & vbCrLf & "てすとB" & vbCrLf, "")
Sub replace(path, before, after)
Set oFso = WScript.CreateObject("Scripting.FileSystemObject")
Set oFsoIn = WScript.CreateObject("Scripting.FileSystemObject")
Set oFolder = oFso.GetFolder(path)
'再帰
For Each Folder In oFolder.SubFolders
Call replace(Folder, before, after)
Next
Set reg = CreateObject("VBScript.RegExp")
reg.Pattern = before
reg.MultiLine = True
reg.Global = True
For Each file In oFolder.Files
Set oFile = oFsoIn.OpenTextFile(file)
buf = oFile.ReadAll
buf = reg.replace(buf, after)
oFile.Close
Set oFile = oFsoIn.CreateTextFile(file)
oFile.WriteLine(buf)
oFile.Close
Next
Set oFso = Nothing
Set oFsoIn = Nothing
Set oFolder = Nothing
Wscript.Echo "おしまい!"
End Sub
参考
猫にWeb さま VBSで正規表現を使用してテキストの文字列を置換する
