テキスト書き換えツール

苦節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."

このコードの解説は今回はしません。要望があれば後ほど…