''[[TopPage]]''

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

** 関連ページ [#dc485206]
なし~

ファイル名: 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                                                       '                                                  '
*** 参考ページ [#pa03f797]
[[Wikipedia:http://ja.wikipedia.org/wiki/VBScript]]~
[[いかちソフトウェア:http://www.geocities.jp/ikachi_soft/script/index.html]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS