指定ディレクトリ配下にある、テキストファイルの中身を置換するスクリプト。
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で正規表現を使用してテキストの文字列を置換する