TopPage

文字列置換スクリプト

複数のテキストファイルで特定の文字列を置換する、最もシンプルですが、使いどころの多いツールです。
perlもCコンパイラも使えないようなWindows環境ではVBScriptが有効と思われます。

関連ページ

なし

ファイル名: replace.vbs

Option Explicit                                                 ' ソースを厳格にチェック                           '
Dim obj_file                                                    ' クラス実体化のため                               '
Set obj_file = New cl_file                                      ' クラス実体化                                     '
                                                                '                                                  '
Call obj_file.Execute( ".\" )                                   ' 処理開始                                         '
Set obj_file = Nothing                                          ' リソース解放                                     '
                                                                '                                                  '
Class cl_file                                                   ' ファイル操作クラス                               '
    public Sub Execute( ByVal vd_folderPath )                   ' 開始処理                                         '
        Dim fso, IDIR                                           ' 変数                                             '
        Set fso = CreateObject( "Scripting.FileSystemObject" )  ' FileSystemObject生成                             '
        Set IDIR = fso.GetFolder( vd_folderPath )               ' フォルダ名取得                                   '
        Call replace_M( IDIR )                                  ' 置換処理開始                                     '
        Set IDIR = Nothing                                      ' リソース解放                                     '
    End Sub                                                     ' 処理終了                                         '
                                                                '                                                  '
    private Sub replace_M( ByRef IDIR )                         ' 置換処理                                         '
        Dim str1, str2, bufStr, fso, IOFO, folderName, filePath, fileName, rtnCod ' 変数                           '
        str1 = "test"                                           ' 置換対象文字列                                   '
        str2 = "TEST"                                           ' 置換後文字列                                     '
        Set fso = CreateObject( "Scripting.FileSystemObject" )  ' FileSystemObject生成                             '
        rtnCod = 1                                              ' 内部処理判定用                                   '
        For Each filePath In IDIR.Files                         ' すべてのファイルについて                         '
            fileName = fso.GetFileName( filePath )              ' ファイル名取得                                   '
            rtnCod = StrComp( "replace.vbs", fileName )         ' 自分自身か                                       '
            If 0 = rtnCod then                                  ' 自分自身なら                                     '
                rtnCod = 1                                      ' 内部処理判定を設定                               '
            Else                                                ' 自分自身でないなら                               '
                Set IOFO = fso.OpenTextFile( filePath, 1 )      ' ファイルを開く                                   '
                bufStr = IOFO.readAll                           ' ファイルの内容をすべて読込む                     '
                IOFO.Close                                      ' ファイルを閉じる                                 '
                Set IOFO = Nothing                              ' リソース解放                                     '
                bufStr = Replace( bufStr, str1, str2 )          ' 置換実行                                         '
                Set IOFO = fso.OpenTextFile( filePath, 2 )      ' ファイルを開く                                   '
                IOFO.write( bufStr )                            ' 置換後ファイル出力                               '
                IOFO.Close                                      ' ファイルを閉じる                                 '
                Set IOFO = Nothing                              ' リソース解放                                     '
            End If                                              '                                                  '
        Next                                                    '                                                  '
                                                                '                                                  '
        For Each folderName In IDIR.SubFolders                  ' サブフォルダについて                             '
            Call replace_M( folderName )                        ' 再帰置換依頼                                     '
        Next                                                    '                                                  '
                                                                '                                                  '
        Set fso = Nothing                                       ' リソース解放                                     '
                                                                '                                                  '
    End Sub                                                     ' 処理終了                                         '
End Class                                                       '                                                  '

参考ページ

Wikipedia
いかちソフトウェア


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-07-19 (火) 12:48:08 (4665d)