テキスト書き換えツール
苦節1ヶ月(嘘)、やっとまともに動く物が出来た。取り合えずソースを載せておくので適当に活用して下さい。ただし、素人が適当に書いただけで全く洗練されていないので悪しからず。
'C:\work\fundamental\ '内の"html"ファイルの特定の部分を置き換える。 ' Set FSO = CreateObject("Scripting.FileSystemObject") ' 対象フォルダの指定 Set src = FSO.GetFolder("C:\work\fundamental\") '文字列検索に関する初期化 Set regEx = New RegExp ' 文字列検索用オブジェクトの作成 regEx.Global = True ' 文字列全体を検索するように指定 regEx.IgnoreCase = True ' 大文字・小文字は検索に影響しない '********************** 1つ目 ****************************** regEx.Pattern = "<!-- shinobi -->" ' 検索文字列の指定 'これで置き換える replacewith = "<!--shinobi1-->" & vbNewLine & _ "<script src=""http://j6.shinobi.jp/ufo/053535101"">"& _ "</script>"& vbNewLine & _ "<noscript><a href=""http://x6.shinobi.jp/bin/gg?053535101""" _ "target=""_blank"">" & vbNewLine & _ "<img src=""http://x6.shinobi.jp/bin/ll?053535101"" & _ "border=0></a><br>" & vbNewLine & _ "<a style=""font-size:80%"" href=""http://www.shinobi.jp/""" _ "target=""_blank"">アクセス解析</a></noscript>" & _ vbNewLine & "<!--shinobi2-->" & vbNewLine rep(replacewith) '********************** 2つ目 ****************************** regEx.Pattern = "<!-- valuecommerce01 -->" ' 検索文字列の指定 'これで置き換える replacewith = "二つ目の文字列" rep(replacewith) '///////////////// ここからサブルーチン //////////////////// ' 指定のフォルダに格納された各ファイルを処理する Sub rep(replacewith) tempLine = "" srhLine = "" WScript.StdOut.Write "replacing" For Each FileName In src.Files ' ファイル名から拡張子を抜き出す FileEx = FSO.GetExtensionName(FileName) ' 拡張子を小文字化してから比較 If LCase(FileEx) = "html" Then ' テキストファイルの内容読み込み処理 ' テキストファイルのオープン Set TextFile = FSO.OpenTextFile(FileName) tempLine = TextFile.ReadAll ' 読み込み srhLine = regEx.Replace(tempLine, replacewith) '置換 bakname = "tmpFile.txt" 'もしすでにバックアップファイル名と '同じ名前のファイルがあったら削除 If FSO.FileExists(bakname) = True Then FSO.DeleteFile(bakname) End If 'バックアップファイル名のファイルが '削除できない・書き込めないとき If err.Number=70 or err.Number=58 Then WScript.Echo FileName & "のバックアップファイル" _ "が作成できませんでした。" err.Clear End If '元のファイルをバックアップファイル名にリネーム FSO.CopyFile FileName , bakname '元のファイル名で、変換した内容を書き込む Set objFileName = FSO.CreateTextFile(FileName, True) objFileName.Write srhLine objFileName.Close WScript.StdOut.Write "." End If Next WScript.Echo vbNewLine & """" & regEx.Pattern & """" & _ " is replaced." End Sub WScript.Echo "All replaced."
このコードの解説は今回はしません。要望があれば後ほど…